我們提供了乙個類:
public class foo
public void second()
public void third()
}三個不同的執行緒將會共用乙個 foo 例項。
執行緒 a 將會呼叫 first() 方法
執行緒 b 將會呼叫 second() 方法
執行緒 c 將會呼叫 third() 方法
請設計修改程式,以確保 second() 方法在 first() 方法之後被執行,third() 方法在 second() 方法之後被執行。
示例 1:
輸入: [1,2,3]
輸出: "firstsecondthird"
解釋:
有三個執行緒會被非同步啟動。
輸入 [1,2,3] 表示執行緒 a 將會呼叫 first() 方法,執行緒 b 將會呼叫 second() 方法,執行緒 c 將會呼叫 third() 方法。
正確的輸出是 "firstsecondthird"。
示例 2:
輸入: [1,3,2]
輸出: "firstsecondthird"
解釋:
輸入 [1,3,2] 表示執行緒 a 將會呼叫 first() 方法,執行緒 b 將會呼叫 third() 方法,執行緒 c 將會呼叫 second() 方法。
正確的輸出是 "firstsecondthird"。
from threading importlock
class
foo:
def__init__
(self):
self.firstjobdone=lock()
self.secondjobdone=lock()
self.firstjobdone.acquire()
self.secondjobdone.acquire()
def first(self, printfirst: '
callable[, none]
') ->none:
#printfirst() outputs "first". do not change or remove this line.
printfirst()
self.firstjobdone.release()
def second(self, printsecond: '
callable[, none]
') ->none:
with self.firstjobdone:
#printsecond() outputs "second". do not change or remove this line.
printsecond()
self.secondjobdone.release()
def third(self, printthird: '
callable[, none]
') ->none:
with self.secondjobdone:
#printthird() outputs "third". do not change or remove this line.
printthird()
1114 按序列印
題目描述 我們提供了乙個類 public class foo public void two public void three 三個不同的執行緒將會共用乙個 foo 例項。執行緒 a 將會呼叫 one 方法 執行緒 b 將會呼叫 two 方法 執行緒 c 將會呼叫 three 方法請設計修改程式,...
1114 按序列印
我們提供了乙個類 public class foo public void two public void three 三個不同的執行緒將會共用乙個 foo 例項。執行緒 a 將會呼叫 one 方法 執行緒 b 將會呼叫 two 方法 執行緒 c 將會呼叫 three 方法 請設計修改程式,以確保 ...
Leetcode 1114 按序列印
我們提供了乙個類 public class foo public void two public void three 三個不同的執行緒將會共用乙個 foo 例項。執行緒 a 將會呼叫 one 方法 執行緒 b 將會呼叫 two 方法 執行緒 c 將會呼叫 three 方法 請設計修改程式,以確保 ...