多线程

1、调用Thread类可以操作线程。步骤是:调用thread类创建线程,复写run();方法,启动线程(调用run方法)。每次的结果都不同是因为CUP的使用权不确定。thread类中的run方法是用于存储线程的代码,同理,main方法是虚拟机要调用的代码的存储位置。run();和start();的区别是前者是创建新线程,后者仍旧是单线程。一个thread线程子类可以创建多个线程,多个子类也可以分别创建自己的子线程。

 1 package pack;
 2 
 3 public class Test1
 4 {
 5     public static void main(String[] args) 
 6     {
 7         Thread1 t=new Thread1();
 8         t.start();   //开启Thread1线程
 9         Thread1 tt=new Thread1();
10         tt.start();
11         
12         Thread2 t1=new Thread2();
13         t1.run();    //未开启Thread2线程,只是简单地调用,仍旧是单线程
14         
15         for(long i=0;i<10;i++)
16             System.out.println("主线程:"+i);
17         
18         Thread t2=new Thread();
19         t2.start();
20     }
21 }
22 class Thread1 extends Thread
23 {
24     public void run()  //一个存储线程的空间
25     {
26         for(long i=0;i<10;i++)
27             System.out.println("自定义线程1:"+i);
28     }
29 }
30 class Thread2 extends Thread
31 {
32     public void run()
33     {
34         for(long i=0;i<10;i++)
35             System.out.println("自定义线程2:"+i);
36     }
37 }

2、线程分为5种状态:创建,运行,冻结,消亡和临时状态。其中,运行状态是具备有运行资格也有执行权的状态,冻结状态是放弃了执行资格,临时状态(阻塞状态)是具有运行资格但没有执行权,消亡状态是没有了运行资格程序结束。Thread类创建了线程对象是线程创建状态,用new关键字来实现;线程对象调用start方法后处于运行状态;运行状态的线程通过sleep(time)方法和wait方法放弃运行资格,时间到了或者用notify方法唤醒线程,使线程进入临时状态;临时状态都的线程具备有运行资格,临时状态和运行状态可以相互转化;运行态的线程也可以用stop方法或者因为run内的程序结束而进入消亡状态。

3、每一个线程都有自己的默认名称:Thread-编号,编号从0开始。currentThread()方法是获取当前线程对象。setName()是设置线程名称,getName();是获取线程名称。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。