剛剛看到了一關於多執行緒的面試題目,就試著寫了一下。
題目: 模擬媽媽做飯,做飯時發現沒有鹽了,讓兒子去買鹽 。只有鹽買回來之後,媽媽才能繼續做飯的過程。
問題分析:既然是物件導向程式設計,拿到問題是首先就要分析涉及到哪些物件。顯然,該問題涉及的物件有:媽媽、兒子和鹽。其中媽媽和兒子都是執行緒類,共享資源就是鹽,所以鹽salt類的方法都要設定為同步方法。具體**如下:
1package
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...