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