java 板


LINE

以下挑战白话文解说 我固定请了5个员工,然後分配5个员工去从生产,而工厂的生产前, 必须有人去打开电源,才能使机械运作,才能开始生产。 若有1个员工要从事生产时,若发现电源没开的话, 就会请下一个员工,也就是第2名员工,去打开电源开关。 当我工厂要一口气生产4个产品的时候,就会一口气有4个人冲向机台, 等待开工,这时第5个人就会去打开电源开关。 很不幸的事,我一口气要生产5个产品的时候,就有5个人冲向机台, 但是没有人去打开电源,因为我一开始就说了,我只请5个员工 Orz 然後整个工厂就停工了 ... ◢▆▅▄▃崩╰(〒皿〒)╯溃▃▄▅▇◣ Thread 有办法限制说不会进行 wait吗? 或者变成 non-blocking 的形式有可能吗? 或者该怎麽避免此问题的发生呢? 从描述可以看的出来勤俭持家的我是用 Executors.newFixedThreadPool 而不是用有钱人专用的 ( 大误 ) Executors.newCachedThreadPool 小弟我想请教 大大们都怎样解决这问题? Q"Q --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.134.106.87
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1400671661.A.318.html
1F:推 backforward:sync 05/21 19:39
2F:→ kingofsdtw:http://codepad.org/l9uxlGW8 (delay_time/user) 05/21 20:05
3F:→ kingofsdtw:关键字setDelayTime 05/21 20:07
4F:→ lin1987www:xd 简单的方式特地专用的Thread来处理,或者狂开Thread 05/21 21:26
5F:→ lin1987www:谢谢1F2F的建议 xd 太抽象了 05/21 21:30
6F:→ luoqr:发现没开开关就去开啊~管他是谁? 05/21 21:38
7F:→ bitlife:这从程式逻辑下手就好吧? 每个员工在冲向机台前,先检查电 05/21 21:38
8F:→ bitlife:源开否,若未开则进入critical section 开电源应该就OK了 05/21 21:39
9F:→ bitlife:如果电只能开一次,那就进临界区间後再检查一次是否己开 05/21 21:41
10F:推 pupuliao:为什麽不能做成 当员工进入产线後 产线自动期动呢? 05/22 02:49
11F:→ qrtt1:为什麽 setDelayTime 能解决问题!? 05/22 08:03
12F:推 kingofsdtw:5张订单去塞爆一条A级产线,A级产线必须5倍速度@_@ 05/22 08:25
13F:推 popcorny:我只是想说 "为什麽发现没开要请下个员工开?" 05/22 09:11
14F:→ PsMonkey:我始终觉得 kingofsdtw 的各种思维都很微妙(又在酸人了 05/22 10:17
15F:推 PsMonkey:btw.. 我觉得原 po 的白话文解说很棒 \囧/ 05/22 10:17
16F:→ andymai:"为何没开要请下个人开?"+1 限制5个又动5个~真的不奇怪吗? 05/22 13:04
上工的人在等待电源被打开,而打开电源这件事情 在我设计上,上工的人单纯等电源被打开就好 ( 职责区分 考虑到 松散耦合 ) 由於工厂上次偷排「废水」,被抓到後勒令停工 ( 掰的跟真的一样 XD) 所以工人需要拿到「复工计画书」才敢打开电源 而如今5个工人都在生产线上等上工,没有工人能在 「复工计画书」生出来後,拿着计划书去开电源 ( 计画书是个参数 ) ※ 编辑: lin1987www (220.134.106.87), 05/22/2014 17:12:00 ※ 编辑: lin1987www (220.134.106.87), 05/22/2014 17:19:52
17F:→ bestlong:若强调职责区分就应该要一个工人专门开电 05/22 17:32
楼上说的没错,现在我就改成有用 Executors.newCachedThreadPool 来负责重要的任务
18F:推 lovdkkkk:看起来可以用 listener 的方式 (随便谁开完电跟别人说) 05/22 17:33
用 Listener倒是没想过...程式码可能会有点丑,不然就是Memory leak... 在我的设计中,没使用Listener,而改是EventBus的,但这是我程式设计上的问题 Orz 用 Listener 无法试用我现在的情况,感谢楼上大大提供意见 :)
19F:推 bestlong:五个工人都上工後,也没工人去拿复工计画书吧 05/22 17:37
没错 Q_Q 没有工人去执行这项任务 ※ 编辑: lin1987www (220.134.106.87), 05/22/2014 17:44:04 ※ 编辑: lin1987www (220.134.106.87), 05/22/2014 17:45:38 ※ 编辑: lin1987www (220.134.106.87), 05/22/2014 17:56:30
20F:→ bestlong:既然工人都先上工,那就由老板负责开电吧 05/22 18:05







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP