Park & unpark

基本使用

Park & unpark_第1张图片

特点

   与Object的wait和notify相比
   1、wait,notify必须配合Object Monitor一起使用,而unpark不必
   2 、park&unpark是以线程为单位来阻塞和唤醒线程,而notify只能随机唤醒一个等待线程,notifyall是唤醒所有的等待线程,就不那么“准确”
   3、park&unpark可以先UNpark 而wait& notify不能先notify

Park & unpark_第2张图片

Park & unpark_第3张图片

调用park方法时,首先检查_counter,看看有没有干粮,上面的_counter是没有干粮的(_counter=0),就进入_cond(帐篷中)休息,并且再次设置_conter的值为0

Park & unpark_第4张图片
先调用unpark就会让_counter的值为1,表示干粮充足,这时如果调用park方法,看见干粮充足,就不会进入帐篷休息,就会直接运行,并且设置_counter为0

每次调用park方法,都会置_counter为0,每次调用park方法,都会置_counter为0,每次调用park方法,都会置_counter为0,每次调用park方法,都会置_counter为0

你可能感兴趣的:(Park & unpark)