..


ลิงก์ผู้สนับสนุน

การจัดการข้อมูลที่ใช้ร่วมกันใน Java

บทความที่เขียนโดย Damiano Verda
หน้า 1 จาก 2

เราสามารถคิดของข้อมูลที่ใช้ร่วมกันเช่นใดงานการประมวลผลข้อมูลอื่น ๆ ที่จะสัมผัสกับบุคคลหรือกิจการที่มากขึ้น ลองนึกภาพยกตัวอย่างเช่นการจัดเก็บค่าตัวเลขที่เป็นตัวแทนของเงินยูโร / ดอลลาร์ เรามีโปรแกรมที่จะตรวจสิ่งที่อัตราแลกเปลี่ยนและการปรับปรุงค่าของตัวแปรที่เป็น หนึ่งหรือมากกว่าหนึ่งโปรแกรมอื่น ๆ แต่จะใช้ข้อมูลที่ปรับปรุงการดำเนินงานอัตราแลกเปลี่ยนที่ราคาแปลงสภาพ

แจ้งให้ทราบวิธีการจัดการของที่ใช้ร่วมกันแม้ในตัวอย่างง่ายๆนี้จำเป็นต้องมีความสนใจเป็นพิเศษ ตัวอย่างเช่นลองนึกภาพว่าในขณะที่ความต้องการของโปรแกรมประยุกต์ในการอ่านอัตราแลกเปลี่ยนในการแปลงเป็นยังได้รับโดยโปรแกรมอื่นคำขอให้เปลี่ยนอัตราแลกเปลี่ยนที่ตัวเอง

ซึ่งจะถูกดำเนินการครั้งแรก? ซึ่งการแปลงอัตราแลกเปลี่ยนที่จะทำ? ปัญหาที่เกิดขึ้นแม้ในบางกรณีซับซ้อนมากขึ้นเล็กน้อยอาจจะรุนแรงมากยิ่งขึ้น

ลองจินตนาการถึงความจริงที่ว่าตัวแปรของดอกเบี้ยที่ไม่ได้เป็นประถม แต่สำหรับตัวอย่างเช่นประกอบด้วยชุดของข้อมูลที่ ตอนนี้มันอาจจะดำเนินการเพียง แต่เขียนบางส่วนและแล้วตามด้วยการอ่านจากเสร็จสิ้นการเขียนที่เป็น การทำธุรกรรมก็จะดำเนินการกับชุดของค่าการเปลี่ยนแปลงเพียงบางส่วนเท่านั้นที่ให้สูงขึ้นเพื่อผลลัพธ์ที่มีความหมายและยอมรับไม่ได้จึง

ได้รับการดำรงอยู่ของชนิดของปัญหานี้การเขียนโปรแกรมภาษาหลายแห่งที่มีเครื่องมือเฉพาะสำหรับการจัดการของตัวแปรที่ใช้ร่วมกัน เราตรวจสอบด้านล่างโดยเฉพาะอย่างยิ่งเป็นหมวดหมู่ของปัญหานี้คือการจัดการในการเขียนโปรแกรมภาษาจาวาซึ่งเป็นหนึ่งในการใช้งานมากที่สุดของทั้งหมด

ก่อนอื่นคุณต้องเข้าใจวิธีการที่เราสามารถมั่นใจได้ว่าเพียงโปรแกรมเดียวในครั้งเดียวหรืออย่างแม่นยำมากขึ้นเดียวด้ายเวลา (หนึ่ง ด้าย เป็นองค์ประกอบพื้นฐานของกระบวนการหรือโปรแกรมในคำอื่น ๆ ที่โปรแกรมสามารถประกอบด้วยหลายหัวข้อ ทำงานพร้อมกัน) สามารถเข้าถึงตัวแปรที่ใช้ร่วมกัน กลไกที่ช่วยให้เราสามารถนำเสนอการรับประกันนี้จะเรียกว่าการยกเว้นร่วมกัน

ยกเว้นร่วมกัน

ลองจินตนาการถึงการพัฒนาชั้นเรียน (หรือชุดของข้อมูลและวิธีการที่เป็นฟังก์ชันที่มีประโยชน์ในการประมวลผลข้อมูลของตัวเอง) ที่เรียกว่า Variabile_Condivisa โครงสร้างดังนี้






 Variabile_Condivisa public class







 {



   



 euro_dollaro ลอย;



   



 euro_sterlina ลอย;





   



 Variabile_Condivisa ()



  



 {



     



 euro_dollaro = 1;



     



 euro_sterlina = 1;



  



 }





   



 เป็นโมฆะ set_euro_dollaro (ลอย e_d) = {euro_dollaro e_d;}



   



 เป็นโมฆะ set_euro_sterlina (ลอย e_s) = {euro_sterlina e_s;}





   



 ลอย get_euro_dollaro () {กลับ euro_dollaro;}



   



 ลอย get_euro_sterlina () {กลับ euro_sterlina;}







 }



สองงบและที่ euro_dollaro euro_sterlina คิดเป็นอัตราแลกเปลี่ยนเงินยูโร / ดอลลาร์และยูโร / ปอนด์และที่เราต้องการใช้ข้อมูลร่วมกันระหว่างโปรแกรมหลาย ๆ (หรือระหว่างหลายเธรด) วิธีการที่พัฒนาขึ้นช่วยให้คุณสามารถกำหนดค่าให้ข้อมูลเหล่านี้ (และ set_euro_dollaro set_euro_sterlina) และอ่านค่าเหล่านั้น (และ get_euro_dollaro get_euro_sterlina)

แล้วเราระบุวิธีการเฉพาะ (Variabile_Condivisa) ซึ่งเรียกว่าสร้างคลาสที่จะดำเนินการและที่การสร้างของแต่ละ Variabile_Condivisa ในกรณีนี้โดยการกำหนดค่าของตัวแปรและ euro_dollaro euro_sterlina มีการกำหนดให้ 1

แล้วเราสร้างในโปรแกรมของเราชนิดของวัตถุที่มีชื่อ var Variabile_Condivisa (ชั้นหมายถึงชุดของหน่วยงานที่มีลักษณะทั่วไปในขณะที่วัตถุเป็นองค์ประกอบเฉพาะของชุดนี้ซึ่งสามารถอ้างอิงได้ในโปรแกรม ) วิธีนี้ :






 Variabile_Condivisa Variabile_Condivisa var = ใหม่ ();



ณ ตอนนี้เราสามารถมั่นใจได้ว่าไม่มีปัญหาในการจัดการของข้อมูลที่ใช้ร่วม var หรือไม่ ภาษา Java ให้คำหลัก (หรือคำสำคัญ) ตรงที่รับวัตถุเป็นพารามิเตอร์ใด ๆ ผ่านการทำข้อมูลให้ตรงกันคุณสามารถกำหนดดังแสดงในตัวอย่างบล็อกของรหัส :





 ตรง (var)







 {



  



 / / Synchronized บล็อกของคั่นด้วยรหัส (VAR)

  





 }



ก่อนที่จะทำการคำแนะนำในการป้องกันตรงกัน, ด้ายใดได้ล็อคใน var ตัวแปรหรือป้องกันการเข้าถึงทั้งหมดต่อไปยังบล็อกเดียวกันของรหัสล็อคจนกว่าจะถูกปล่อยหรือจนกว่าหลังจากใช้บล็อกทั้งหมด ตัวอย่างของรหัสโดยคั่นด้วยเครื่องหมายวงเล็บปีกกา

ในคำอื่น ๆ ที่หัวข้อแรก (ที่เราคิดที่จะเรียกครั้งแรก) ที่ดำเนินการคำสั่งตรง (var) จริงสร้างอุปสรรคใด ๆ ที่ป้องกันไม่ให้ด้ายอื่น ๆ ที่จะรันคำสั่งตรง (var) จนกระทั่งครั้งแรกที่ยังไม่ได้เสร็จสมบูรณ์ การดำเนินการป้องกันการทำข้อมูลให้ตรงกันของที่คั่นด้วยรหัส ในบล็อกเหล่านี้จะแทรกจากนั้นคำแนะนำในการอ่านหรือเขียนข้อมูลที่ใช้ร่วมกัน

วิธีนี้จะรับประกันการยกเว้นร่วมกันซึ่งจะทำให้มั่นใจว่ามีเพียงหนึ่งด้ายเวลาที่สามารถเข้าถึงตัวแปรที่ใช้ร่วมกัน มันควรจะสังเกต แต่ที่มีความจำเป็นต้องระมัดระวังเลือกวัตถ​​ุที่จะส่งผ่านเป็นพารามิเตอร์ในการทำข้อมูลให้ตรงกัน มันจะต้องร่วมกันเพื่อวัตถุกระทู้ทั้งหมดที่คุณต้องการที่จะสร้างกลไกสำหรับการยกเว้นรวม, ตัวอย่างเช่นในกรณีนี้ตัวแปรที่คุณต้องการจะอ่านหรือแก้ไข

ลองคิดดูที่จุดนี้คุณต้องการตั้งค่าโปรแกรมของเราเพื่อให้หัวข้อที่ต้องการอ่านค่าของตัวแปร var จะถูกวางไว้และประเมินผลเฉพาะหลังจากการปรับปรุงครั้งแรกดังต่อไปนี้คำขอของพวกเขา ลองจินตนาการว่าคุณต้องการกำหนดกลไกการประสานระหว่างการอ่านและเขียน

ในประเภทเดียวกัน ...
E - Learning
ลินุกซ์ (หลักสูตร) ลินุกซ์ (หลักสูตร)
คู่มือที่สมบูรณ์ในระบบเปิดแหล่งที่มา จาก 49 €
PHP (หลักสูตร) PHP (หลักสูตร)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 49 €
Ruby และ Ruby on Rails (หลักสูตร) Ruby และ Ruby on Rails (หลักสูตร)
สร้างโปรแกรมซอฟต์แวร์และเว็บด้วยทับทิมและ ร. จาก 39 €
ลิงก์ผู้สนับสนุน