#项目检出步骤
1.请使用Eclipse或者MyEclipse开发工具,复制该项目对应的git地址进行相关导入。
2.由于项目中的一些demo使用了JDK1.8的新特性,在检出项目之后请更换JDK环境为1.8的,
或者把demo中使用新特性的代码改为原来JDK1.7的也可。
#Java高并发编程
1.synchronized锁定的是一个对象。
2.synchronized关键字可以修饰代码块,或者方法(静态方法、普通方法)。
3.synchronized锁定类的实例与锁定类的.class文件区别。
4.加synchronized不一定能实现线程安全,具体需要看锁的对象是否唯一。
5.同步方法和非同步方法是可以同时调用的。
6.对业务写方法加锁,同时也要对业务读方法加锁,否则容易产生脏读问题。
7.一个同步方法可以调用另一个同步方法,一个线程已经拥有某个对象的锁,再次申请的时候仍然会得到该对象的锁;也就是说synchronized获得的锁是可重入的。
8.程序在执行过程中,如果出现异常,默认情况锁会被释放。
9.volatile 关键字,使一个变量在多个线程间可见。
10.volatile并不能保证多个线程共同修改变量时所带来的不一致问题,也就是说volatile不能替代synchronized。
11.synchronized可以保证可见性和原子性,volatile只能保证可见性。但是volatile的效率要比synchronize高。
12.解决同样的问题的更高效的方法,使用AtomXXX类,AtomXXX类本身方法都是原子性的,但不能保证多个方法连续调用是原子性。
13.使用synchronized锁定的代码块尽量少,一般只锁定需要同步的代码块;这样效率才会高。
14.锁定某对象o,如果o的属性发生改变,不影响锁的使用,但是如果o变成另外一个对象,则锁定的对象发生改变;应该避免将锁定对象的引用变成另外一个对象。
15.尽量不要以字符串作为锁定的对象,如 string s1="hello" string s2="hello",当分别用s1和s2作为锁定的对象时,实际它们锁定的是同一把锁。这样很有可能造成死锁。
16.volatile 关键字,是一个变量在多个线程间可见;但是并不能保证原子性。
17.AtomXXX类本身方法都是原子性的,但不能保证多个方法连续调用是原子性。
18.synchronize优化,同步代码快中的语句越少越好。
19.锁定某对象o,如果o的属性发生改变,不影响锁的使用;但是如果o变成另外一个对象,则锁定的对象发生改变;应该避免将锁定对象的引用变成另外一个对象。
20.reentrantlock用于替代synchronized。
21.ThreadLocal是使用空间换时间,synchronized是使用时间换空间;比如在hibernate中session就存在与ThreadLocal中,避免synchronized的使用。
22.线程安全的单例模式:使用内部类的写法。
23.队列Queue的实现类。
24.线程池中Executors工具类的使用。
#思考题
1.A线程正在执行一个对象中的同步方法,B线程是否可以同时执行同一个对象中的非同步方法?
2.同上,B线程是否可以同时执行同一个对象中的另一个同步方法?
3.线程抛出异常会释放锁吗?
4.volatile和synchronized区别?
5.写一个程序,证明AtomXXX类比synchronized更高效。
6.AtomXXX类可以保证可见性吗?请写一个程序来证明。
7.写一个程序证明AtomXXX类的多个方法并不构成原子性。
8.写一个程序模拟死锁。
9.写一个程序,在main线程中启动100个线程,100个线程完成后,主线程打印“完成”,使用join()和countdownlatch都可以完成,请比较异同。
10.一个高效的游戏服务器应该如何设计架构?
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
马士兵高并发课程实例代码 (217个子文件)
MyContainer2.class 4KB
MyContainer1.class 3KB
T01_ConcurrentMap.class 3KB
MyContainer4.class 3KB
MyContainer5.class 3KB
MyContainer3.class 3KB
T05_LinkedBlockingQueue.class 3KB
ReentrantLock3.class 3KB
T07_ParalleComputing.class 3KB
Demo15.class 3KB
T02_CopyOnWriteList.class 3KB
T06_Future.class 2KB
Demo14.class 2KB
Demo13.class 2KB
MyContainer1.class 2KB
MyContainer2.class 2KB
ReentrantLock4.class 2KB
T07_DelayQueue$MyTask.class 2KB
TicketSeller3.class 2KB
TicketSeller4.class 2KB
T14_ParallelStreamAPI.class 2KB
ReentrantLock2.class 2KB
TicketSeller2.class 2KB
T05_ThreadPool.class 2KB
Demo07.class 2KB
Demo08.class 2KB
Singleton.class 2KB
T08_CachedPool.class 2KB
Demo17.class 2KB
T10_ScheduledPool.class 2KB
ThreadLocal2.class 2KB
TicketSeller1.class 2KB
T09_Synchronized.class 2KB
ReentrantLock1.class 2KB
T08_TransferQueue.class 2KB
ThreadLocal1.class 2KB
T09_SingleThreadPool.class 2KB
Demo12.class 2KB
Demo11.class 2KB
T12_ForkJoinPool.class 2KB
ReentrantLock5.class 2KB
T06_ArrayBlockingQueue.class 2KB
T01_MyExecutor.class 1KB
T04_ConcurrentQueue.class 1KB
T11_WorkStealingPool$R.class 1KB
T12_ForkJoinPool$AddTask.class 1KB
T11_WorkStealingPool.class 1KB
Demo05.class 1KB
Demo06.class 1KB
Demo09.class 1KB
T07_ParalleComputing$MyTask.class 1KB
T02_CopyOnWriteList$1.class 1KB
Demo04.class 1KB
Demo16.class 1KB
Demo01.class 1KB
Demo10.class 1014B
Demo02.class 969B
Demo03.class 856B
T07_DelayQueue.class 829B
T03_SynchronizedList.class 790B
Demo18.class 686B
Singleton$Inner.class 652B
Demo11$1.class 613B
Demo100.class 576B
T13_ThreadPoolExecutor.class 441B
T04_Executors.class 414B
Person1.class 353B
Person.class 351B
T02_ExecutorService.class 314B
T03_Callable.class 293B
Singleton$1.class 207B
.classpath 301B
config 296B
description 73B
exclude 240B
HEAD 176B
HEAD 176B
HEAD 32B
HEAD 23B
pack-eb66e223627295660f26ba7cfa5e0ed3c83de86f.idx 9KB
thread.iml 437B
index 15KB
MyContainer5.java 3KB
MyContainer4.java 2KB
MyContainer2.java 2KB
ReentrantLock3.java 2KB
T07_ParalleComputing.java 2KB
T12_ForkJoinPool.java 2KB
ReentrantLock4.java 2KB
MyContainer3.java 2KB
MyContainer1.java 2KB
ReentrantLock5.java 2KB
T07_DelayQueue.java 2KB
Demo11.java 2KB
T01_ConcurrentMap.java 1KB
T02_CopyOnWriteList.java 1KB
ReentrantLock2.java 1KB
TicketSeller4.java 1KB
TicketSeller3.java 1KB
MyContainer2.java 1KB
共 217 条
- 1
- 2
- 3
资源评论
技术杠精
- 粉丝: 425
- 资源: 66
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功