今天有朋友问我一道面试题,有5个人抢5个红包,可重复抢,用多线程程序实现,实现方式有多种,分享一下我的思路:应用了阻塞队列的特性。
/**
*Createdbyzhanglinqiangon2016/6/23.
*/
publicclassMyTest{
publicstaticvoidmain(String[]args)throwsInterruptedException{
LinkedBlockingQueueluckyMoneys=newLinkedBlockingQueue<>();
ListfutureTasks=newArrayList<>();
//准备抢红包
for(inti=0;i<5;i++){
FutureTask
运行效果:
ConnectedtothetargetVM,address:'127.0.0.1:8869',transport:'socket'
name3抢到了-->LuckyMoney{name='红包0',money=16}
name4抢到了-->LuckyMoney{name='红包3',money=89}
name0抢到了-->LuckyMoney{name='红包2',money=75}
name1抢到了-->LuckyMoney{name='红包1',money=51}
name3抢到了-->LuckyMoney{name='红包4',money=92}
end>>>>>>>>>>>>>>>>>>>>>>>>>>>>name0
end>>>>>>>>>>>>>>>>>>>>>>>>>>>>name4
end>>>>>>>>>>>>>>>>>>>>>>>>>>>>name3
DisconnectedfromthetargetVM,address:'127.0.0.1:8869',transport:'socket'
end>>>>>>>>>>>>>>>>>>>>>>>>>>>>name1
end>>>>>>>>>>>>>>>>>>>>>>>>>>>>name2
Processfinishedwithexitcode0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。