1.由于Thread类位于java.lang包中,因而程序的开头不用import导入任何包就可直接使用
try{
sleep((int)(1000*Math.random()));//sleep()方法必须写在try-catch块内
}catch(InterruptedException e){写sleep()方法容易出现InterruptedException错误
System.out.println(who+"正在运行!");
}
2.Math.random()方法将产生0-1s的随机数
3. Runnable接口更适合多个线程处理
4.由于程序中的MyThread类是有由Runnable接口实现的,所以sleep()方法前面要加Thread
前缀
5.程序中被同时激活的多个线程将同时执行,但有时需要有序的执行,这时可以使用Thread
类中的join方法,当某一个线程调用join()方法时,则其他的线程会等到该线程结束后才开始
执行
6.public void join()方法:暂停当前线程的执行,等待调用该方法的线程结束后再继续执行
本线程
7.join()方法会抛出InterruptedException异常,所以必须把join()方法放在try-catch块内
8.如何获得当前正在运行的线程:
第一种:直接使用继承Thread类的子类,再类中this即只当前进线程
第二种:使用Runnable接口的类,在此类中获得当前线程的引用,必须使用Thread.current
Thread()方法
9.注意: 当可运行对象包含线程对象时,即线程对象是可运行对象的成员时,则在run()方法
中可以调用Thread.currentThread()方法来获得正在运行的线程的引用
第二种可运行对象不包含线程对象时,可运行对象run()方法中需要语句
Thread.currentThread().getName()方法 来返回当前的正在运行线程的名字总结:今天学习了实现多线程的两种方式,一种是继承Thread类,这个只能继承一个,但编写较简单
两一种是自己定义类实现Runnable接口来实现多线程,在数据的共享方面Runnable接口实现线程对象
较继承Thread子类来说更契合实际,更满足情况
也学习了start()方法线程的启动
run()方法线程的执行
join()方法暂停当前线程
四月二十八号Java基础知识
原创wx635131693f6f9 ©著作权
©著作权归作者所有:来自51CTO博客作者wx635131693f6f9的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:六月二号
下一篇:四月二十六java基础知识
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
四月十八日java基础知识
1.由于每个对象的pi值都是相同的,所以没有必要让每个对象都保存有自己的pi值,因此将pi
静态初始化 构造方法 类类型 -
CopilotKit与WebAssembly集成:提升AI计算性能
你是否还在为React应用中的AI功能S
WebAssembly 加载 Rust
















