1、多线程6种状态
public enum State {
//新建
NEW,
//运行
RUNNABLE,
//阻塞
BLOCKED,
//等待
WAITING,
//延时等待
TIMED_WAITING,
//终止
TERMINATED;
}
2、wait/sleep区别:
1、类不同:wait属于Object类;sleep属于Thread类
2、会不会释放资源:wait会释放资源;sleep不会释放资源
3、使用范围不同:wait必须跟notfialy一起使用;sleep是个独立的方法
4、异常捕获不同:wait不需要捕获异常;sleep需要捕获异常
3、线程同步方式:1、Synchronizde关键字同步;2、Lock锁是一个对象
区别:Synchronizde会自动释放锁,Lock需要手动释放锁
Synchronizde一定是非公平锁,Lock可以是公平锁,通过参数设置
Synchronizde适用代码量较小的同步,Lock适用代码量较大的
4、List在多线程下是线程不安全:
故障原因:ConcurrentModificationException 并发修改异常
导致原因:add()方法没枷锁
解决方案:1、List<String> list = new Vector<>();
2、List<String> list = Collections.synchronizdeList(new ArrayList<>());
3、List<String> list = new CopyOnWriteArrayList<>();
5、HashSet的底层源码是什么? 就是HashMap ;HashMap的底层数据是:链表+红黑树
分享到:
相关推荐
java多线程处理数据库数据,使用并发包,无框架,可批量处数据库数据,进行增删改。。等等操作。
该文档是笔者在学习李刚老师《Java疯狂讲义》中有关多线程的用法而总结出来的笔记,其中主要的内容包括线程创建和启动、线程的生命周期、控制线程、线程同步、线程通信线程池等基本内容...该文章时多线程博客的原始素材
Fleck.dll支持websocket引自博客文章多线程下的websocket实时通信,具体使用方式请看文章多线程下的websocket实时通信,包括具体的服务器端跟客户端编码。
QT多线程实战源码,用到线程间通信等内容。 博客地址:https://tinycool.blog.csdn.net/article/details/124298084
该例程是针对MFC的多线程编程,具体的code介绍见博客地址:http://blog.csdn.net/u013896064 window线程编程
c++多线程系列,配套博客地址:http://blog.csdn.net/richerg85/article/details/7450818
Java多线程网络爬虫(时光网为例)源码,为maven创建,有不明白请看我的博客介绍;转载请用连接注明出处。近期有人,将本人博客直接复制上传到百度文科等平台,不尊重个人努力成果。
介绍了一个可以在JavaScript中应用多线程的库:Concurrent.Thread,内有多线程库脚本,以及使用说明和实例,如果查看详情,可以查看我的博客https://blog.csdn.net/hsl_1990_08_15/article/details/84765772
本来要做一个UDP的对战游戏,键盘鼠标做数据来源的,只写了个全局钩子,完成了多线程UDP的收发,其它没做。一些说明在博客里: http://blog.csdn.net/d759378563/article/details/47127571
基于golang实现的多线程下载器,用于下载支持http/https协议的资源,具体源码可移步个人博客(地址:http://t.csdn.cn/0aR0i)。
多线程计数实现多线程执行后再执行主线程,在项目中实际应用。
包含多线程,runtime 测试用例,配合博客文章,实例测试,可打开注释直接运行~
多线程循环读取csv文件执行请求以及CSV Data Set Config配置信息,如有什么疑问,可以在博客下留言,https://blog.csdn.net/u012811841/article/details/108710930
java基础之多线程的练习题,博客访问地址: http://blog.csdn.net/u014028392/article/details/76906801
一、初识TThread对象VCL提供了用于多线程编程的TThread类,在这个类中封装了Windows关于线程机制的Windows API,通常将它的实例成为线
c++多线程实例1;相应博客说明地址为:http://blog.csdn.net/richerg85/article/details/7438314
本代码配套我的博客里的多线程编程, 这里系统性地进行讲解,附带每个知识点的代码,快速入门Linux的多线程编程! 博客地址:https://blog.csdn.net/weixin_40519315/article/details/104211643
UI界面多线程简单实现和线程捕获异常问题,博客的最终代码,博客才写了个初稿,还没完全修改好。
您观看课程学习后免费入群领取【超全Python资料包+17本学习电子书】 1)CSDN博客异步抓取、IP代理、关键字搜索、GUI展示 2)不用复杂框架,原生异步抓取 3)流程清晰,让你一个小时了解爬虫精髓
Java 单线程复制文件和使用RandomAccessFile多线程复制文件的比较,对应博客地址为http://blog.csdn.net/zmichealchow/article/details/38687431