-
进程: 程序(任务)的执行过程(动态) 持有资源(共享内存、共享文件)和线程--[载体]查看全部
-
线程之间存在互斥与同步 进程如果是班级, 线程就是每个同学. 线程是系统中最小的执行单元, 同一个进程中有多个线程 线程共享进程的资源查看全部
-
Thread常用方法查看全部
-
进程 1.程序(任务)的执行过程。进程是动态性的,放在磁盘文件中的文件并不是进程,只有在运行状态的才可称之为进程。 2.持有资源(共享内存,共享文件)和线程。进程是资源和线程的载体 线程 1.线程是系统中最小的执行单元 2.同一进程中有多个线程 3.线程共享进程的资源 线程的交互:多个线程需要正确的通信才能进行工作。 交互方式有互斥和同步两种。查看全部
-
Runnable接口实现多个个线程(视频中的军队线); 继承Thread类实现一个主线程(视频中的关键人物); 继承Thread类实现线程的执行类(视频中的舞台类)查看全部
-
thread类常用方法:查看全部
-
进程是动态执行的程序。持有资源(内存,文件等等)。 线程包含在进程中,一个进程可以有多个不同的线程。不同的线程在执行时,其状态是同步合作的或相互之间互斥的。查看全部
-
书啊书啊查看全部
-
争用条件查看全部
-
争用条件查看全部
-
创建线程有两种方式:继承Thread类和Runnable接口;继承Runnable接口是将Runnaleb作为参数传入Thread中来创建线程;用户可以通过重写run方法来规定线程来做哪些事情,即任务;因为多个线程争抢cpu资源,可能会造成数据的破坏,因此可通过线程锁即synchronized(中文意思:同步的)关键字配合wait方法来过滤掉不满足条件的线程,使这些线程保持休眠状态知道被重新唤醒,而满足条件的线程继续执行,执行完毕后,通过notify()/notifyAll()方法唤醒处于睡眠状态的线程,重新竞争资源,然后再次通过线程锁重新筛选,循环往复查看全部
-
interrupt初衷并不是停止我们的线程。 查询JAVA API文档 在java.lang包下,找到Thread,Ctrl+F找到interrupt(),找到三个。 interrupt() 中断线程 interrupted() 测试当前线程是否已经中断,注意这个方法是静态方法。 isInterrupted() 测试线程是否已经中断。后者两个方法返回的值都是布尔值。 在API中我们看到:如果线程在调用 Object 类的 wait() 、wait(long) 或 wait(long, int) 方法,或者该类的 join() 、join(long) 、join(long, int) 、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException 。 在这里首先我们看到API中interrupt()方法中断线程是有条件的,在API中提示如果以前的条件都没有保存,才会将该线程的中断状态设置。此时调用后面的interrupted()或者isInterrupted()将返回一个布尔值的变量true来表示线程被中断。 如果使用了join方法或者sleep方法使得线程阻塞中断的情况下,使用interrupet会使得线程的中断状态被清除,并且当前的线程将会收到一个InterruptedException,这代表如后面再调用interrupted或者isInterrupted方法将不会得到一个正确的值。这就是为什么我们在使用join方法或者sleep方法需要用try-catch语句包围来捕获这个InterruptedException异常的原因。在使用join或者sleep方法时,一旦其它或当前线程调用了interrupted()方法,它将会收到一个异常。这些被阻塞的线程因为某些原因需要被唤醒,比如外部发生了中断,它需要响应,这时它就通过抛出异常的方式来使我们有机会做出一些响应。所以interrupt并不能正确的停止我们的线程。查看全部
-
volatile boolean keepRunning查看全部
-
Thread常用方法查看全部
-
Java5中并发编程工具查看全部
举报
0/150
提交
取消