Java多线程总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java多线程总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1909字,纯文字阅读大概需要3分钟。
内容图文
![Java多线程总结](/upload/InfoBanner/zyjiaocheng/853/653ffc5f68ad4a208f3c44c477a48cf8.jpg)
一.多线程的创建方式:
(1).使用Thread继承类的方式创建多线程
1. 定义类,继承Thread
2. 重写run方法。
3. 创建Thread子类对象
4. 调用start方法。
(2).使用Runnable实现接口的方式创建多线程
1. 定义类,实现Runnable接口。
2. 重写run方法。
3. 创建Runnable接口的实现类对象
4. 创建Thread对象,在构造方法位置传递Runnable接口的实现类对象
5. 调用start方法启动线程
二.Runnable实现接口方式的好处:
1. 解决java中类与类只能单继承的局限性。
2. Runnable接口中只有一个run方法,只需要关注线程任务,功能更加 的纯粹。
3. 降低耦合性(关联性)
4. 可以更加方便的实现线程间数据的共享。
三.线程安全问题的出现的原因
当多个线程同时操作共享的数据,那么就有可能引发线程安全问题。
四,同步代码块解决线程安全问题
synchronized(锁对象) {
//…
}
只有持有锁的线程才能够进入到同步代码块中。
五.同步方法解决线程安全问题
修饰符 synchronized 返回值类型 方法名() {
//方法体;
}
同步方法相当于把整个方法体都加上了同步代码块。
同步方法也是有锁的:如果方法是非静态的,那么锁对象是this,
如果方法是静态的,那么锁对象是类名.class(字节码对象)
六.线程6个状态的名称
1.NEW(新建): 当我们创建好Thread或者Thread子类对象时, 该线程处于新建状态。
2.RUNNABLE(运行): 当线程调用start方法后,就处于了运行 状态。
3.BLOCKED(受阻塞): 当线程等待获取锁的时候,那么该线程处 于受阻塞的状态。
4.WAITING(无限等待): 如果没人来叫我,那么就永远等待,这 个就是无限等待。 当调用wait()方法 ,线程可以进入到无限等待状态
5.TIMED_WAITING(计时等待): 如果等待的过程中时间到了可 以自己醒,那么就是计时等待 。 比如sleep(毫秒值), wait( 毫秒值)方法
6.TERMINATED(死亡):当线程执行完自己的run或者调用了stop 方法,就会变成死亡状态。
七.等待唤醒机制
wait(); 让线程等待,只要其他线程不唤醒,就一直等。
notify(); 唤醒一个等待的线程。
这些方法一定要放在同步代码中,并且使用锁对象去调用。
八.Java中线程池运行原理
线程池就是一个容器,里面预先存储了很多线程。 里面的线程可以复用,可以多次执行任务。
线程池的好处:可以避免频繁创建以及销毁线程引发的性能问题
内容总结
以上是互联网集市为您收集整理的Java多线程总结全部内容,希望文章能够帮你解决Java多线程总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。