赞
踩
该文章相关的学习笔记及练习代码将会放在个人 github, 博主也会尽量进行github的日更新,博客将会不定期进行更新,在更新的过程可能存在诸多不足的地方,愿大家指出,可博客私信/评论,也可QQ :674619459 联系我,一起讨论,还可以在GitHub上面提issue 。欢迎大家关注我的github,一起学习Java,一起进步!!。
原因:主板限制(木桶效应), 相关讨论: https://www.zhihu.com/question/29962475/answer/1644236272
64位架构(windows的)下,地址线是46个,所以最大的物理地址是2^46B,折合64TB,可用地址空间也是这么大(目前为止)
查看核数:
对于系统吞吐量:
相关参考博客:https://blog.csdn.net/bj_ameng/article/details/115266696
构造函数:private ThreadGroup() ;public ThreadGroup(String name); 为什么这样设计?
官方文档: https://docs.oracle.com/javase/8/docs/api/
注:Java并没有提供安全终止线程的方法
(1)采用Thread.stop():已不推荐使用
(2)采用interrupt机制
(1)将主内存复制变量到工作内存(read and load)
(2)执行代码,修改共享变量(use and sign)
(3)将工作内存刷新到主内存(store and write)
当多个线程修改同一数据结构(可为集合,也可为变量)时,产生的数据不一致性问题,线程不安全。
和线程不安全相反,每次都能保证一样的结果,保证数据的高度一致性和准确性。
保证的方式:
Java自带的关键字(底层原理?—),保证线程同步,需要抢锁
(1)加在方法声明处(加在静态方法则是锁该类,加在非静态则是该对象)
(2)代码块:
当加锁在 .class时锁住整个类,静态方法都不能用;而锁在 object只是该对象,静态方法是能够用的,;当存在静态方法时一般会采用加锁 .class
四种加锁情况: https://baike.baidu.com/item/synchronized/8483356?fr=aladdin
Lock及ReentrantLock
ReadWriteReetrantLock
ReadLock的意义在于保证读取的顺序性。
注:加锁即保证原子性也保证可见性。
CAS算法,底层CPU指令实现
Hashtable 和 ConconrrentHashmap
CopyOnwirteArraysList\Set
Vector
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。