synchronized ใน JAVA คืออะไร และ มีการทำงานอย่างไร  สร้างคำถาม

 4,283 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 13/05/2019

synchronized ใน JAVA คืออะไร และ มีการทำงานอย่างไร

synchronized คือการทำงานแบบเป็นขึ้นเป็นตอน ประมาณว่าต้องรอให้ทำงานตรงนี้เสร็จก่อนถึงจะทำงานขึ้นต่อไปได้

ใน ภาษา Java จะเป็นการ Lock เพื่อรอครับ โดยจะมีผลกับการทำงานที่มีการทำงาน
แบบแตก Thread หลายๆ Thread พร้อมๆ กัน เมื่อทำงานมาถึงจุดที่ synchronized
แต่ละ Thread จะต้องหยุดรอและเข้าคิวกันทำงานทีละ Thread

มีเพื่อนๆ ถามมาว่า synchronized มีกี่แบบผมขอยกตัวอย่างในภาษา Java นะครับ
synchronized มีทั้งหมด 3 แบบคือ
1. Synchronized method
อันนี้ใส่ไว้เป็น modifier ของ method ได้เลย เช่น
synchronized public void test() {....}
จะมีผลให้มี Thread เรียกใช้งาน method นี้ได้เพียว 1 Thread เท่านั้น ถ้าหากมีการเรียกใช้งานพร้อมๆ กัน
จะต้องมีการ wait รอก่อน

2. synchronized Block Object
กรณีที่เราไม่อยากให้ synchronized ทั้ง method อันนี้สามารถแทรกไว้ใน Line of code ได้ เช่น
Object myObject = this;
synchronized(myObject) {......}

3. synchronized Block Class
ตัวอย่าง
Class c = this.getClass();
synchronized(c) {......}

ตอบแบบคร่าวๆ เทาๆ นะครับ 55+
ถ้าต้องการเพิ่มเติมตรงใหน เม้นถามได้


ถ้าชอบบทความนี้ กด Like เลย :synchronized ใน JAVA คืออะไร และ มีการทำงานอย่างไร
TAGS : Java   Programming   โปรแกรมมิ่ง  
 4,283 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 13/05/2019



SOA,Java,XSLT

 ร่วมแสดงความคิดเห็นได้ที่นี่

#1.    Admin
@ มี 3 แบบนะครับ เพิ่มในคำตอบให้ละ

...............................................



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

เนื้อหาที่เกี่ยวช้อง

  PLSQL วิธี ตัดเคาะ Enter ออก ลองใช้ trim แล้วไม่ได้ ถามเมื่อ (2017-03-03)   2,146 views  (ดูล่าสุดเมื่อ 38 วินาที!!)

  PLSQL วิธี Fetch ข้อมูลใน Cursor แบบต่างๆ ถามเมื่อ (2020-02-28)   4,472 views  (ดูล่าสุดเมื่อ 1 นาที)

  jQuery Selectors วิธีการเลือก element หรือ tag ต่างๆใน HTML ถามเมื่อ (2017-06-13)   1,236 views  (ดูล่าสุดเมื่อ 8 นาที)

  Grails กับ Groovy ต่างกันยังไงครับ ถามเมื่อ (2017-03-27)   2,588 views  (ดูล่าสุดเมื่อ 14 นาที)

  Hibernate Call PLSQL โดยใช้ createStoredProcedureCall ถามเมื่อ (2017-06-01)   1,792 views  (ดูล่าสุดเมื่อ 14 นาที)

  inode บน unix คืออะไร ถามเมื่อ (2020-02-04)   2,136 views  (ดูล่าสุดเมื่อ 19 นาที)

  Unix คำสั่งลบไฟล์ทีละมากๆ ใน Unix ด้วยคำสั่ง xargs rm f ถามเมื่อ (2017-03-06)   1,789 views  (ดูล่าสุดเมื่อ 23 นาที)

  JSON Array Example พร้อมตัวอย่าง ถามเมื่อ (2017-12-26)   1,238 views  (ดูล่าสุดเมื่อ 23 นาที)

  Jasperreport เทคนิค การแสดงผล field CLOB Oracle ใน iReport ถามเมื่อ (2018-09-07)   974 views  (ดูล่าสุดเมื่อ 23 นาที)

  javascript วิธีการให้ confirm ก่อนส่งลิ้ง ด้วย tag A ถามเมื่อ (2015-08-28)   1,988 views  (ดูล่าสุดเมื่อ 23 นาที)


 

บ้านเดียวกันดอทคอม เว็บถามตอบ รวมทุกเรื่องที่คุณอยากรู้ ให้ความรู้ ความบันเทิง มีสาระ
www.ban1gun.com