
多线程案例分析三
发布日期:2021-05-07 09:11:26
浏览次数:19
分类:精选文章
本文共 1098 字,大约阅读时间需要 3 分钟。
竞争抢答
实现一个竞拍抢答的程序,要求设置三个抢答者(三个线程),而后同时打出抢答指令,抢答成功给出成功提示,为抢答成功给出失败提醒。
对于者个多线程的操作由于里面要牵扯到数据的返回问题,那么最好使用Callnable是比较方便的一种处理形式。
package multithreading;import java.util.concurrent.*;public class 竞争抢答 { public static void main(String[] args) { MyThread3 myThread = new MyThread3(); FutureTasktaskA = new FutureTask (myThread); FutureTask taskB = new FutureTask (myThread); FutureTask taskC= new FutureTask (myThread); new Thread(taskA,"抢答者A").start(); new Thread(taskB,"抢答者B").start(); new Thread(taskC,"抢答者C").start(); try { System.out.println(taskA.get()); System.out.println(taskB.get()); System.out.println(taskC.get()); } catch (InterruptedException | ExecutionException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }}class MyThread3 implements Callable { private boolean flag = false;//抢答处理 @Override public String call() throws Exception { synchronized (this) { if(this.flag == false) {//抢答成功 this.flag = true; return Thread.currentThread().getName()+"抢答成功"; }else { return Thread.currentThread().getName()+"抢答失败"; } } } }
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月10日 01时42分10秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2021-05-08
MongoDB 快速扫盲贴
2021-05-08
EXTJS4.2——10.Tab+Iframe
2021-05-08
one + two = 3
2021-05-08
sctf_2019_easy_heap
2021-05-09
PyQt5之音乐播放器
2021-05-09
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2021-05-09
SQL注入
2021-05-09
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2021-05-09
Problem A - Sequence with Digits (数学推导)
2021-05-09
Problem 330A - Cakeminator (思维)
2021-05-09
LeetCode75 颜色分类 (三路快排C++实现与应用)
2021-05-09
docker基础:容器生命周期管理命令
2021-05-09
C#开发BIMFACE系列35 服务端API之模型对比6:获取模型构建对比分类树
2021-05-09
C# 规范建议
2021-05-09
C语言+easyX图形库的推箱子实现
2021-05-09
反汇编-流程控制语句-2-循环控制语句分析
2021-05-09
调试vs2019代码的流程
2021-05-09
游戏外挂基础-概述
2021-05-09
脱壳与加壳-加壳-6-代码实现加密导入表
2021-05-09