终端研发部

java多线程

2018-01-11  本文已影响0人  java大哥

ackageThreadDemo;/**

* 多线程

*      程序:一组指定的集合(没有运行的程序)

*      进程:正在执行的程序。负责获取CPU内存资源的

*      线程:进程中的一个组成部分,负责被CPU执行(CPU调度)

*

*  注:

*          一个进程至少有一个线程,线程是进程的组成部分,线程结束,进程不一定结束,

*          但是进程结束,线程就一定会结束。

*

* java中线程的实现方式:

*          继承Thread类:

*              [1]继承Thread类

*              [2]重写run()方法

*              [3]创建对象,调用start方法。启动线程

*/publicclassMyThreadextendsThread{publicMyThread(String name){super(name);    }@Overridepublicvoidrun() {for(inti =1;i<=5;i++){//获取当前线程及名称System.out.println(Thread.currentThread().getName()+"\t第"+i+"次执行....");            }        }publicstaticvoidmain(String[] args) {//创建对象MyThread mt  =newMyThread("小琪");        MyThread mt1 =newMyThread("phoebe");        MyThread mt2 =newMyThread("菲比");        MyThread mt3 =newMyThread("帅帅");//mt.run();  //对象名.方法名();  这个代码写在了主方法里,由主线程来执行mt.start();        mt1.start();        mt2.start();        mt3.start();            }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

packageThreadDemo;/**

* Java中线程实现的第二种方式:

*          实现Runnable接口

*              [1]实现Runnable接口

*              [2]重写run方法

*              [3]创建一个Thread对象

*              [4]通过Thread对象,调用Thread类中的start()方法启动线程

*

*      开发中建议使用接口的方式来实现多线程,以避免Java中类的单继承带来的局限性

*      Runnable这个接口还能共享资源

*/publicclassMyRunimplementsRunnable{@Overridepublicvoidrun() {for(inti =1;i<=5;i++){            System.out.println(Thread.currentThread().getName()+":\t第"+i+"次运行.....");        }    }publicstaticvoidmain(String[] args) {//创建对象MyRun mr =newMyRun();        Thread th =newThread(mr);//创建Thread类对象,使用Thread类中的start()方法启动线程th.start();    }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

packageThreadDemo01;/**

* 一共有5张票:(runable接口可以共享资源)

*          合理的售完

*/publicclassMyRunnableimplementsRunnable{intticket =5;@Overridepublicvoidrun() {for(inti =1;i<=15;i++){//有15个人等着买票if(ticket>0){                        System.out.println("线程"+Thread.currentThread().getName()+"卖票"+(ticket--));                    }                }        }publicstaticvoidmain(String[] args) {//创建对象MyRunnable mr =newMyRunnable();            Thread th =newThread(mr);            Thread th1 =newThread(mr);            Thread th2 =newThread(mr);            th.start();            th1.start();            th2.start();        }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

packageThreadDemo02;/**

* 线程的五种状态:

*          新生:通过new创建时

*          就绪:通过调用start方法,具备执行资格,等待分配到CPU资源

*          运行:具备执行资格同时又刚好得到了CPU资源,执行run方法中的代码

*                    直到等待某资源而阻塞或执行完任务而死亡

*          阻塞:正在执行时的线程,被执行了sleep(睡眠)方法等,停止了运行则是阻塞阶段

*          死亡(终止):线程生命周期的最后一个阶段:

*                                      1、正常执行完毕

*                                      2、线程被强制制止

*                                      3、线程抛出未捕获的异常

*/publicclassThreadDemo{publicstaticvoidmain(String[] args) {//创建对象    【新生】ThreadEntity te =newThreadEntity();            Thread t =newThread(te);              System.out.println("线程启动前:"+t.isAlive());//falset.start();//【就绪状态】System.out.println("线程启动后:"+t.isAlive());//true//优先级System.out.println("获取当前线程及名字:"+Thread.currentThread().getName());            System.out.println("获取当前线程的优先级:"+Thread.currentThread().getPriority());            System.out.println("线程的最高优先级:"+Thread.MAX_PRIORITY);            System.out.println("线程的最低优先级:"+Thread.MIN_PRIORITY);            System.out.println("线程的默认优先级:"+Thread.NORM_PRIORITY);//设置优先级t.setPriority(3);            System.out.println(t.getPriority());        }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

packageThreadDemo02;/**

*/publicclassThreadEntityimplementsRunnable{@Overridepublicvoidrun() {for(inti =1;i<=5;i++){        System.out.println(Thread.currentThread().getName()+":\t"+i);    }    }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

上一篇 下一篇

猜你喜欢

热点阅读