1.线程间通信
同步阻塞消息处理:
等待处理结果,拿到结果才结束
异步非阻塞消息处理:
提交Event,生成单号,交互结束,后续根据单号直接查询处理结果
单线程间通信
通过wait和notify进行阻塞和唤醒控制
1.线程间通信
同步阻塞消息处理:
等待处理结果,拿到结果才结束
异步非阻塞消息处理:
提交Event,生成单号,交互结束,后续根据单号直接查询处理结果
单线程间通信
通过wait和notify进行阻塞和唤醒控制
1.monitorenter
每一个对象都与一个monitor相关联,一个monitor的lock的锁只能被一个线程在同一时间获得。在一个线程尝试获得与对象关联monitor的所有权时会发生如下的几件事情:
①如果monitor的计数器为0,则意味着该monitor的lock还没有被获得,某个线程获得之后将立即对该计数器加一,从此该线程就是这个monitor的所有者
②如果一个已经拥有该monitor所有权的线程重入,则会导致monitor计数器再次累加
③如果monitor已经被其他线程所拥有,则其他线程尝试获得该monitor的所有权时,会被陷入阻塞状态直到monitor计数器为0,才能再次尝试获取对monitor的所有权
1.java进程的内存大小为:堆内存 + 线程数量*栈内存
2.堆内存不变,栈内存越大,可创建的线程数量越小,栈变化为系数关系