คำถามติดแท็ก java-threads

30
“ ใช้ Runnable” และ“ ยืดเธรด” ใน Java
จากเวลาที่ฉันใช้กับเธรดใน Java ฉันได้พบทั้งสองวิธีในการเขียนเธรด: ด้วยimplements Runnable: public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call หรือด้วยextends Thread: public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" …

30
ความแตกต่างระหว่าง wait () และ sleep ()
ความแตกต่างระหว่าง a wait()และsleep()ในเธรดคืออะไร? ฉันเข้าใจหรือไม่ว่าwait()-ing Thread ยังคงอยู่ในโหมดใช้งานและใช้รอบ CPU แต่sleep()-ing ไม่ได้ใช้ CPU รอบใดถูกต้องหรือไม่ เหตุใดเราจึงมีทั้ง wait()และsleep(): การใช้งานของพวกเขาแตกต่างกันในระดับที่ต่ำกว่าอย่างไร

12
หากฉันซิงโครไนซ์สองวิธีในคลาสเดียวกันพวกเขาสามารถทำงานพร้อมกันได้หรือไม่?
หากฉันซิงโครไนซ์สองวิธีในคลาสเดียวกันพวกเขาสามารถทำงานพร้อมกันบนวัตถุเดียวกันได้หรือไม่? ตัวอย่างเช่น: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } ฉันรู้ว่าฉันวิ่งไม่ได้ methodA()สองครั้งบนวัตถุเดียวกันในสองเธรดที่แตกต่างกัน สิ่งเดียวกันmethodB()ค่ะ แต่ฉันสามารถเรียกใช้methodB()เธรดอื่นขณะที่methodA()ยังทำงานอยู่ได้หรือไม่ (วัตถุเดียวกัน)

6
ข้อแตกต่างระหว่าง Service, Async Task & Thread หรือไม่?
อะไรคือความแตกต่างระหว่าง Service, Async Task & Thread หากฉันไม่ผิดพวกเขาทั้งหมดจะใช้ทำบางสิ่งในพื้นหลัง ดังนั้นวิธีการตัดสินใจที่จะใช้และเมื่อใด

12
จะใช้การรอและการแจ้งเตือนใน Java ได้อย่างไรโดยไม่ใช้
ฉันมีเมทริกซ์ 2 ตัวและต้องคูณพวกมันแล้วพิมพ์ผลลัพธ์ของแต่ละเซลล์ ทันทีที่เซลล์หนึ่งพร้อมฉันต้องพิมพ์ แต่ตัวอย่างเช่นฉันต้องพิมพ์เซลล์ [0] [0] ก่อนเซลล์ [2] [0] แม้ว่าผลลัพธ์ของ [2] [0] จะพร้อมก่อน . ดังนั้นฉันต้องพิมพ์ตามคำสั่ง ดังนั้นความคิดของฉันคือการทำให้เธรดเครื่องพิมพ์รอจนกว่าmultiplyThreadจะแจ้งให้ทราบว่าเซลล์ที่ถูกต้องพร้อมที่จะพิมพ์แล้วprinterThreadจะพิมพ์เซลล์และกลับไปรอเป็นต้น ดังนั้นฉันมีหัวข้อนี้ที่จะคูณ: public void run() { int countNumOfActions = 0; // How many multiplications have we done int maxActions = randomize(); // Maximum number of actions allowed for (int i = 0; i < …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.