高并发的线程学习Day1

Source

一.高并发的线程 和进程状态
进程并发和并行
进程的同步和异步
进程的死锁,活锁,饥饿
并行的两个概念:
1 Amdahl 理论
加速比=优化前系统耗时/优化后系统耗时
Tn = T(F+(1-F)/n)系统的效率受进程并发的数目影响,处理器个数不起决定作用
2 Gustfson定律
加速比=优化前系统耗时/优化后系统耗时
加速比=a/a+b(a 进程只能串行的个数 b 进程中并行的数目)
处理器个数越大效率越高
二.Thread类
runnable接口
Thread类实现该接口
实现run方法
synchronized关键字 独占
sleep()方法睡眠
interrupted()中断
isinterred()获取中断状态
Thread.Interrupted 中断标志位设置
yield()让出资源
wait 和notify notifyall 都为object类基本方法
wait 当前进程等待
notify 随机取出等待队列的某一进程运行
notifyall释放全部进程
interrpute方法知识2为进程设置一个终止符,进程并没有真正的随着方法的实现而停止,必须在run方法体内调用isinterrupated方法或者interruptaed方法来判断是否为终止状态而跳出循环;
线程通过interrpate方法终止之后,仍然会继续运行run方法的剩下部分(如在for循环中跳出循环,则会继续在for循环之外的剩余run方法体内继续运行)
解决办法:在run方法体内调用trycatch模块来抛出异常;
在这里插入图片描述