多執行緒之兒子買鹽問題

2021-06-16 18:31:03 字數 1446 閱讀 2135

剛剛看到了一關於多執行緒的面試題目,就試著寫了一下。

題目: 模擬媽媽做飯,做飯時發現沒有鹽了,讓兒子去買鹽   。只有鹽買回來之後,媽媽才能繼續做飯的過程。

問題分析:既然是物件導向程式設計,拿到問題是首先就要分析涉及到哪些物件。顯然,該問題涉及的物件有:媽媽、兒子和鹽。其中媽媽和兒子都是執行緒類,共享資源就是鹽,所以鹽salt類的方法都要設定為同步方法。具體**如下:

1

package

com.sync;

2/**

3* 題目: 模擬媽媽做飯,做飯時發現沒有鹽了,讓兒子去買鹽

4* 只有鹽買回來之後,媽媽才能繼續做飯的過程。5*

@author

administrator6*

7*/89

//鹽10class

salt catch

(interruptedexception e) 22}

23notify();

24 saltnum = saltnum - 10;

25 system.out.println("媽媽煮菜使用了10克鹽!剩餘"+saltnum+"克鹽!");

26return

saltnum;27}

28//

買鹽,每次買saltnum克鹽

29public

synchronized

void addsalt(int

num) catch

(interruptedexception e) 36}

37try catch

(interruptedexception e)

42 saltnum = saltnum +num;

43 system.out.println("兒子買回來100克鹽!");

44 notify();//

買完鹽回來後,喚醒正在等待的母親繼續煮菜45}

46}4748

//母親

49class mother implements

runnable

54public

void

run() catch

(interruptedexception e) 62}

63}6465}66

67//

兒子68

class son implements

runnable

73public

void

run() catch

(interruptedexception e)

80 salt.addsalt(100);81}

82}8384}85

86public

class

saltandcook

9596 }

多執行緒之兒子買鹽問題

剛剛看到了一關於多執行緒的面試題目,就試著寫了一下。題目 模擬媽媽做飯,做飯時發現沒有鹽了,讓兒子去買鹽 只有鹽買回來之後,媽媽才能繼續做飯的過程。問題分析 既然是物件導向程式設計,拿到問題是首先就要分析涉及到哪些物件。顯然,該問題涉及的物件有 媽媽 兒子和鹽。其中媽媽和兒子都是執行緒類,共享資源就...

多執行緒之兒子買鹽問題

剛剛看到了一關於多執行緒的面試題目,就試著寫了一下。題目 模擬媽媽做飯,做飯時發現沒有鹽了,讓兒子去買鹽 只有鹽買回來之後,媽媽才能繼續做飯的過程。問題分析 既然是物件導向程式設計,拿到問題是首先就要分析涉及到哪些物件。顯然,該問題涉及的物件有 媽媽 兒子和鹽。其中媽媽和兒子都是執行緒類,共享資源就...

多執行緒之買票問題

package com.lyon.controller public class testthread2 implements runnable try catch interruptedexception e system.out.println thread.currentthread getn...