日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
JavaThread隊列詳細代碼的介紹

Java Thread隊列一直是我們需要掌握的代碼。下面我們就基本思想:建立了一個隊列,為每一個Java Thread隊列保存了一個對象鎖,保證按順序執(zhí)行。線程啟動的時候,使隨機的,但是執(zhí)行代碼是按順序的。

創(chuàng)新互聯建站專注于企業(yè)成都全網營銷、網站重做改版、固安網站定制設計、自適應品牌網站建設、HTML5建站商城系統(tǒng)網站開發(fā)、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為固安等各大城市提供網站開發(fā)制作服務。

 
 
 
  1. import java.util.LinkedList;
  2. import java.util.Queue;
  3. public class ThreadTest {
  4. private static Queue qThread=new LinkedList();//線程同步對象隊列
  5. public static synchronized void putObject(Object t){
  6. qThread.offer(t);
  7. }
  8. public static synchronized Object getObject(){
  9. return qThread.poll();
  10. }
  11. public static void waitThread(Object t) throws InterruptedException{
  12. synchronized(t){
  13. t.wait();
  14. }
  15. }
  16. public static void notifyThread(){
  17. Object obj=ThreadTest.getObject();
  18. synchronized(obj){
  19. obj.notify();
  20. }
  21. }
  22. public static void main(String[] args) throws InterruptedException {
  23. int i = 0;
  24. boolean isFirst=true;
  25. while (i < 10) {
  26. Object obj=new Object();
  27. if(i>0){
  28. isFirst=false;
  29. ThreadTest.putObject(obj);
  30. }
  31. Thread t2 = new Thread2(isFirst,obj);
  32. Object obj2=new Object();
  33. ThreadTest.putObject(obj2);
  34. Thread t3 = new Thread3(obj2);
  35. t2.start();
  36. t3.start();
  37. i++;
  38. }
  39. }
  40. }
  41. /**
  42. * 線程2
  43. *
  44. * @author Harry.WANG
  45. *
  46. */
  47. class Thread2 extends Thread {
  48. private boolean isFirst=false;
  49. private Object obj;
  50. public Thread2(boolean f,Object obj){
  51. this.isFirst=f;
  52. this.obj=obj;
  53. }
  54. @Override
  55. public void run() {
  56. if(!this.isFirst){
  57. System.out.println(this.getName()+"等待...");
  58. try{
  59. ThreadTest.waitThread(obj);
  60. }catch(InterruptedException e){
  61. e.printStackTrace();
  62. }
  63. }
  64. System.out.println("啟動"+this.getName()+"...");
  65. try {
  66. sleep(3000);//等待3秒,為了測試
  67. } catch (InterruptedException e) {
  68. e.printStackTrace();
  69. }
  70. System.out.println("停止"+this.getName()+"...");
  71. ThreadTest.notifyThread();
  72. }
  73. }
  74. class Thread3 extends Thread {
  75. private Object obj;
  76. public Thread3(Object obj){
  77. this.obj=obj;
  78. }
  79. @Override
  80. public void run() {
  81. System.out.println(this.getName()+"等待...");
  82. try{
  83. ThreadTest.waitThread(obj);
  84. }catch(InterruptedException e){
  85. e.printStackTrace();
  86. }
  87. System.out.println("啟動"+this.getName()+"...");
  88. try {
  89. sleep(3000);//等待3秒,為了測試
  90. } catch (InterruptedException e) {
  91. e.printStackTrace();
  92. }
  93. System.out.println("停止"+this.getName()+"...");
  94. ThreadTest.notifyThread();
  95. }
  96. }

以上就是對Java Thread隊列的詳細介紹。希望大家有所幫助。


文章名稱:JavaThread隊列詳細代碼的介紹
標題URL:http://www.dlmjj.cn/article/dhiescs.html