日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Thread 与Runnable区别详解

發布時間:2025/4/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thread 与Runnable区别详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//使用Thread實現線程不能實現資源共享 class MyThread extends Thread { private int ticket=5;private String name;public MyThread(String name ){this.name=name;}public void run(){for(int i=0;i<10;i++){if(ticket>5){System.out.println("線程"+name+"賣票"+i);}}} }public class ThreadDemo02 {public static void main(String args[]){MyThread A = new MyThread("A"); //實例化兩個要執行的任務。下面創建了領個線程分別一個執行任務MyThread B = new MyThread("B");A.start();B.start();} }
//使用Runnable實現線程可以實現資源共享 class MyThread implements Runnable {private int ticket=5;private String name;public MyThread(String name){this.name=name;}public void run(){for(int i=1;i<=10;i++){if(ticket>0){System.out.println("線程"+name+"賣票"+(ticket--));}}} } public class RunnableDemo02 {public static void main(String args[]){MyThread A = new MyThread("A"); //實例化線程要執行的任務Thread Ta = new Thread(A); //實例兩個線程對象,實際傳遞的是一個任務Thread Tb = new Thread(A); //因為兩個線程執行的是一個任務,所以資源是共享的Ta.start();Tb.start();} }因為一個線程只能啟動一次,通過Thread實現線程時,線程和線程所要執行的任務是捆綁在一起的。也就使得一個任務只能啟動一個線程,不同的線程執行的任務是不相同的,所以沒有必要,也不能讓兩個線程共享彼此任務中的資源。

一個任務可以啟動多個線程,通過Runnable方式實現的線程,實際是開辟一個線程,將任務傳遞進去,由此線程執行。可以實例化多個 Thread對象,將同一任務傳遞進去,也就是一個任務可以啟動多個線程來執行它。這些線程執行的是同一個任務,所以他們的資源是共享。

兩種不同的線程實現方式本身就決定了其是否能進行資源共享。


? 轉載自: http://blog.csdn.net/xiaoya629/article/details/5507252

總結

以上是生活随笔為你收集整理的Thread 与Runnable区别详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。