可以使当前同级线程重新获得运行机会的方法是【 】。
A、sleep()
B、join()
C、yield()
D、interrupt()
Thread类提供的基本线程控制方法包括:
sleep()――使比其低的优先级线程运行,可以让一个线程暂停运行一段固定的时间;
yield()――使具有与当前线程相同优先级的线程有运行的机会;
join()――使当前线‘程暂停执行,等待调用该方法的线程结束后,再恢复执行;
interrupt()――中断线程的阻塞状态,并且线程接收到InterruptException异常。
多线程实现同步的方法有两种,分别是、。
同步机制应该遵循哪些基本准则【 】
A、空闲让进
B、忙则等待
C、有限等待
D、让权等待
· 空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源
· 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
· 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态
· 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
同一进程下的线程可以共享以下【 】?
A、stack
B、data section
C、register set
D、file fd
线程共享的内容包括:
进程代码段
进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、
进程打开的文件描述符、
信号的处理器、
进程的当前目录和
进程用户ID与进程组ID
线程独有的内容包括:
线程ID
寄存器组的值
线程的堆栈
错误返回码
线程的信号屏蔽码
阅读下面实现堆栈类并发控制的部分代码
public class DateStack{ private int idx = 0; private int[] data = new int [8]; public void push(int i){ ______________{ data[idx]=i; idx++; } } }
在程序下划线处填入正确选项是 【 】。
A、synchronized
B、synchronized(this)
C、synchtonized()
D、synchtonized(idx)