Java之多线程(1)
线程是操作调用的基本单位
进程是资源分配的基本单位,拥有独立的地址空间
春游中,以班为单位申请春游资源,每个同学春游回来之后需要给校长做Report,一次仅一个同学和校长做Report。一个班里的同学可以在黑板上写东西做交流。不同班的同学则不行。
为什么多线程??
问题空间需要并发的需求 问题:并发,并行,同步,异步,同步之间的区别?多核就是多个ALU(算数运算单元)
同步 摘一个并扔一个,接一个。双方动作协调 (狗熊掰棒子) 在课程中借用了同步的概念,多个线程共享同步代码段,这个过程称为同步,实际意义是不同的
异步 发者和接者的关系是独立的,狗熊掰了一堆棒子,放在空地上,然后另外一个可以单个或多个一起拿回去。
并发 并发是并行的一种模拟,一般用时间片轮换的方法
并行 两个程序一起进行,在多个CPU的时候能够实现,但是单CPU的时候是不能实现的,只能模拟。利用并发
并行和并发是操作系统层面,和进程线程关系不大。
Everything is object
要创建一个线程就要写一个类实现java.lang.Runnable或继承类java.lang.Thread
线程的不确定执行造成多线程程序很难调试
问题:两个枪手互射,如何设计算法使得更公平。
发表评论
| Trackback
