用JAVA写一个多线程程序

h_zai888 2012-03-24 12:47:16
用JAVA写一个多线程程序,写四个线程,二个线程对这个变量++,另外两个对这个变量变量--,输出。
大家活跃起来吧
...全文
175 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
人呢?快来人呀
MiceRice 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 h_zai888 的回复:]
哥呀 我就是不会在到这问呢 会的话我浪费这时间干什么呀?修改了还是不行的呀?
[/Quote]

不会啊,我修改后,可以看到大量数据在跳动,你看不到效果??

......
-10011
-10012
-10013
-10014
-10015
-10014
-10013
-10012
-10011
-10010
-10009
-10008
-10007
......
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
就是四个线程随机的++ -- 每个线程都在走
达达拉 2012-03-24
  • 打赏
  • 举报
回复
LS代码有错?LZ要什么结果?
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
哥呀 我就是不会在到这问呢 会的话我浪费这时间干什么呀?修改了还是不行的呀?
MiceRice 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 h_zai888 的回复:]
就是用JAVA写一个多线程程序,写四个线程,二个线程对这个变量++,另外两个对这个变量变量-- 结果肯定不是0的呀 线程是随机的咋么可能是0呀?
[/Quote]

你认真学过线程么?

你只是想看看很多数字跳来跳去是吧?

那么把这两段修改下:

// 负责增加的
Runnable adder = new Runnable() {
public void run() {
for (int i = 0; i < 1e5; i++) {
inc();
System.out.println(counter);
}
}
};
// 负责减少的
Runnable decer = new Runnable() {
public void run() {
for (int i = 0; i < 1e5; i++) {
dec();
System.out.println(counter);
}
}
};

h_zai888 2012-03-24
  • 打赏
  • 举报
回复
我要的不是最后的结果 而是要过程 如
1
2
3
4
3
4
5
4
3
2这样的
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
就是用JAVA写一个多线程程序,写四个线程,二个线程对这个变量++,另外两个对这个变量变量-- 结果肯定不是0的呀 线程是随机的咋么可能是0呀?
  • 打赏
  • 举报
回复
求代码帖!!
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
咋么不是继承runnable呀?没有run()方法啊
MiceRice 2012-03-24
  • 打赏
  • 举报
回复
++ 和 -- 的总次数一样,最终当然是 0

你可以自行修改:for (int i = 0; i < 1e6; i++) 中的循环次数
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
咋么不++ --呀就输出个0
MiceRice 2012-03-24
  • 打赏
  • 举报
回复

public class MultiIncDec {

private static int counter = 0;

public static void main(String[] args) {
// 负责增加的
Runnable adder = new Runnable() {
public void run() {
for (int i = 0; i < 1e6; i++)
inc();
}
};
// 负责减少的
Runnable decer = new Runnable() {
public void run() {
for (int i = 0; i < 1e6; i++)
dec();
}
};

// 定义线程
Thread[] ts = new Thread[4];
ts[0] = new Thread(adder);
ts[1] = new Thread(adder);
ts[2] = new Thread(decer);
ts[3] = new Thread(decer);

// 启动
for (Thread t:ts) {
t.start();
}

// 等待结束
for (Thread t:ts) {
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

// 输出结果
System.out.println("Result: " + counter);
}

public static synchronized void inc() {
counter++;
}

public static synchronized void dec() {
counter--;
}

}
MiceRice 2012-03-24
  • 打赏
  • 举报
回复
很容易的代码啊,你认为问题是啥?
h_zai888 2012-03-24
  • 打赏
  • 举报
回复
哥哥姐姐们 快来人呀 帮帮忙呀!
内容概要:本文介绍了DeepSeek在职场中的应用,从提示语技巧到多场景应用,涵盖了DeepSeek的基础模型(V3)、深度思考模型(R1)及其联网搜索功能。文中详细描述了DeepSeek的模型对比,包括操作规范、结果导向、路径灵活性、响应模式和风险特征等方面。此外,还探讨了DeepSeek在制作可视化图表、PPT、海报、视频以及批量生成新媒体文案等具体应用场景中的使用方法和技巧。最后,文章展示了DeepSeek在市场调查、AI应用开发等方面的应用实例,强调了其在人机协同和共生领域的潜力。 适用人群:适用于希望提升工作效率和创新能力的职场人士,特别是从事数据分析、内容创作、市场营销、AI开发等领域的专业人士。 使用场景及目标:①通过DeepSeek的基础模型(V3)和深度思考模型(R1)进行高效的任务处理和复杂推理;②利用DeepSeek制作可视化图表、PPT、海报和视频,提高内容创作的质量和效率;③通过DeepSeek进行市场调查和AI应用开发,优化业务流程并推动创新。 其他说明:DeepSeek不仅提供了强大的AI工具,还强调了人机协同的重要性。用户在使用过程中应注意操作规范,结合实际需求选择合适的模型,并充分利用DeepSeek的各项功能来实现高效的职场应用。文中还提到了多个国际竞赛中的获奖情况,展示了DeepSeek团队在AI领域的卓越实力。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧