14.3 线程实现方法2
生活随笔
收集整理的這篇文章主要介紹了
14.3 线程实现方法2
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package cn.chen.synchronizefunction2;
/*
自定義線程的創(chuàng)建方式:方式一:1.自定義一個(gè)類繼承Thread類。2.重寫Thread類的run方法,把自定義線程的任務(wù)代碼寫在run方法上。3.創(chuàng)建Thread的子類對(duì)象,并且調(diào)用start方法啟動(dòng)一個(gè)線程。注意:不能直接調(diào)用run方法,調(diào)用start方法的時(shí)候線程就會(huì)開啟,線程一旦開啟就會(huì)執(zhí)行run方法中代碼,如果直接調(diào)用就相當(dāng)于調(diào)用一個(gè)普通方法而已。方式二:1.自定義一個(gè)類實(shí)現(xiàn)Runnable接口。2.實(shí)現(xiàn)Runnable接口的run方法,把自定義線程的任務(wù)定義在run方法上。3.創(chuàng)建Runnable實(shí)現(xiàn)類(d)的對(duì)象調(diào)用start方法開啟線程。 4.創(chuàng)建Thread類的對(duì)象,并且把Runnable實(shí)現(xiàn)類的對(duì)象(d)作為實(shí)參傳遞。5.調(diào)用Thread對(duì)象的start方法開啟一個(gè)線程。注意:1.Runnable實(shí)現(xiàn)類的對(duì)象并不是一個(gè)線程對(duì)象,只不過是實(shí)現(xiàn)了Runnable接口的對(duì)象而已。2.只有Thread或者Thread的子類才是線程對(duì)象。3.Runnable 實(shí)現(xiàn)類的對(duì)象作為實(shí)參傳遞給Thread對(duì)象。
*/
public class Demo2 implements Runnable{@Override// TODO Auto-generated method stubpublic void run(){System.out.println("this : "+ this);System.out.println("當(dāng)前線程 " + Thread.currentThread());for(int i = 0; i < 10; i++){System.out.println(Thread.currentThread().getName()+":"+i);} }public static void main(String[] args) {// TODO Auto-generated method stubDemo2 d = new Demo2();Thread t = new Thread(d,"狗娃");t.start();}}
推薦使用第二種實(shí)現(xiàn)方式:
package cn.chen.threadpractice; class SaleTicket implements Runnable{int num = 10;@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){synchronized("鎖"){if(num>0){System.out.println(Thread.currentThread().getName()+"售出了第"+num+"號(hào)票");num--;}else{System.out.println("售罄了");break;}}}}} public class ThreadPractice {public static void main(String[] args) {// TODO Auto-generated method stubSaleTicket s = new SaleTicket();Thread t1 = new Thread(s,"窗口1");Thread t2 = new Thread(s,"窗口2");Thread t3 = new Thread(s,"窗口3");t1.start();t2.start();t3.start();}}總結(jié)
以上是生活随笔為你收集整理的14.3 线程实现方法2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14.2线程死锁
- 下一篇: 14.4 线程通讯-生产者与消费者