-
1、互斥:同一时间只能有一个线程来访问该资源。 2、同步:wait()/notify()/notifyAll()--->Object对象的方法。当某个线程处于等待状态,可以访问资源时,发出唤醒消息,唤醒其他的线程可以访问。 3、notify()唤醒的线程是随机生成的。查看全部
-
1、一个线程告诉其他线程某些消息----通信。 2、多个线程不能同时使用某个资源----互斥。 3、synchronized锁定互斥资源。 4、while(energyBoxes[from]<amount){lockObj.wait();} ---->while循环保证条件不满足时会阻挡一些线程,Wait Set中等待 5、lockObj.notifyAll();唤醒所有等待资源的线程。查看全部
-
争用条件(Race Condition):当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件。 线程之间的调度是通过分时和抢占来完成的。查看全部
-
一个线程在阻塞状态下(例如sleep),此时interrupt的话,将会产生两个结果: 1、进程的interrupt状态被清除(clear)而非被设置(set)。 2、sleep方法会抛出异常。查看全部
-
停止线程可以使用退出的标志。查看全部
-
stop()方法已经不推荐使用了。具体的实现内容对用户不可见,用户不了解具体操作了哪些。。。查看全部
-
互斥锁! synchronized(Object object){ object.wait():线程等待 -----等待的锁中 object.notifyAll() 唤醒所有在object对象上等待的线程 代码... }查看全部
-
线程的创建主要是通过,Thread类中的run()方法和接口Runable中复写run()方法来实现的查看全部
-
join方法可中断其它线程的执行,等待调用join方法的线程结束,即使是主线程main也会被中断 join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。查看全部
-
join方法会使所有线程等待调用的线程执行结束。查看全部
-
volatile可以保证线程可以正确的读取其他线程写入的值 可见性 ref JMM,happens-before原则查看全部
-
Thread类、Runnable接口;run()方法。查看全部
-
Java实现线程的两种主要方法: ①.继承Thread类 ②.实现Runnable接口 但是二者都必须重写public void run()方法查看全部
-
进程: 程序的执行过程;持有资源和线程。 线程:系统中最小的执行单元。 比如一个软件里边的各种任务就是线程。同一进程中有多个线程,线程共享进程的资源 线程的交互:互斥、同步查看全部
-
进程: 程序的执行过程;持有资源和线程。 线程:系统中最小的执行单元。 比如一个软件里边的各种任务就是线程。 线程的交互:互斥、同步查看全部
举报
0/150
提交
取消