-
Thread
查看全部 -
http://www.cnblogs.com/riskyer/p/3263032.html
查看全部 -
挺不错的,适合了解多线程基础但又不熟悉的人,同时还推荐了多线程相关的书籍,以及学习的方向。查看全部
-
查看全部
-
概念<br><br>
1:进程:程序(任务)的执行过程,是一个动态性的概念,另外,进程持有资源(内存)(共享内存、共享文件)和线程,是资源和线程的载体<br>
2:线程:是系统中最小的执行单元、同一个进程中有多个线程,线程共享进程的资源<br>
3:线程之间的交互(即线程通信):互斥、同步
比如:老师举得例子,一个班级有多个学生,并且班级里面有多张书桌板凳等等<br> 这个班级可以看作是一个进程<br> 班级里的学生可以看作一个线程<br> 班级里的书桌板凳等可以看作进程中的资源<br> 学生之间的合作行为,比如一起打扫卫生可以看作线程对资源的同步使用<br> 学生之间的竞争行为,比如一本书一次只能一个学生看可以看作是线程对资源的互斥使用<br> 嗯,老师讲的非常棒,例子举得生动形象,容易理解和记忆。非常感谢。 进程是线程的载体,这个说明进程比线程要大,一个进程可以包含多个线程,另外,线程以进程的存在为前提,如果自习室是一个进程的话,自习室中学习的同学是线程,自习室中的座位就是资源,同学们共同解决一个难题的时候是合作关系,是线程的同步行为,同学们之间争抢座位的时候是竞争关系,是线程之间的互斥行为。
查看全部 -
创建线程thread
启动线程start
线程休眠sleep
加入线程join
释放资源yield
查看全部 -
线程停止:<br> 1、调用stop()方法会使线程戛然停止,而无法知道线程任务完成情况,官方已经不推荐使用。<br> 2、interrupt()方法设置线程的标识位,并在线程中判断标志位的状态,从而结束线程,但是当在线程中开启了另外的线程时,比如在线程中Tread.sleep(),这时候调用interrupt()方法设置标志位可能设置的是你想要停止的线程,也可能是想要停止的线程中的线程的标志位,因此interrupt()方法也并不能很好的结束线程。<br> 3、第三种方法,在线程的类声明一个volatile变量来记录线程的状态,相当于interrupt()方法那样,volatile关键字表示线程中的变量可以接受外部其他线程改变。因此可以在需要停止的地方设置volatile声明的变量的值设置为状态,并在执行run()函数里判断是否结束。 System.out.print();-------------格式化输出 ①.%d-----------输出整数 ②.%10.2f-------输出一个浮点数,小数点前有10位,小数点后为2位 ③.%n-----------换行
格式输出 System.out.printf("从d%转移到%10.2f单位能量到%d".from,amount,to);
1.获取线程名称:getName(); 2.取得当前线程对象:currentThread(); 3.判断是否启动:isAlive(); 4.强行运行:join(); 5.线程休眠:sleep(); 6.线程礼让:yield();
查看全部 -
常用方法查看全部
-
线程!!查看全部
-
同步的实现 wait /notify /notifyAll查看全部
-
1 互斥 同一时间,只有一个线程在执行 2 同步 是一种同步机制,在一个线程执行完之后,通知其他的线程 3 实现方法 互斥--新建一个锁对象 private Object lockobj = new Object(); 然后通过synchronized关键字(同步的意思) synchronized(lockobj){代码块}--保证同一时间只有一个线程在执行 其他的线程被放入wait set中, 当线程执行结束了之后,使用线程锁--lockobj.notifyAll();--唤醒所有的线程查看全部
-
正确停止线程方法查看全部
-
stop方法是java1.0提供的停止线程的方法,已经被官方停用,会使程序戛然而止,造成无法预知的后果.查看全部
-
调用join方法,会使其他线程等待调用join方法的线程执行完毕查看全部
-
Thread常用方法查看全部
举报