吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1825|回复: 9
收起左侧

[已解决] 这个多线程的程序为什么运行的结果和我想得不一样

[复制链接]
d173220523 发表于 2019-8-12 17:42
本帖最后由 d173220523 于 2019-8-13 23:19 编辑

[Java] 纯文本查看 复制代码
public class Main {
        public static void main(String[] args) {
                /*
                 * A[] a = new A[2]; for (int i = 0; i < A.length; i++) a[i] = new A(i);
                 * a[0].setPriority(2); a[1].setPriority(3); a[0].start(); a[1].start();
                 */
                TestThread[] runners = new TestThread[2];
                for (int i = 0; i < 2; i++) {
                        runners[i] = new TestThread(i);
                }
                runners[0].setPriority(2);
                runners[1].setPriority(3);
                for (int i = 0; i < 2; i++) {
                        runners[i].start();
                }
        }
}
class TestThread extends Thread {
        private int tick = 1, num;

        public TestThread(int num) {
                this.num = num;
        }

        public void run() {
                while (tick < 40000) {
                        tick++;
                        if (tick % 5000 == 0) {
                                System.out.println("Thread#" + num + ",tick=" + tick);
                                yield();
                        }
                }
        }
}

Thread#0,tick=5000
Thread#1,tick=5000
Thread#0,tick=10000
Thread#0,tick=15000
Thread#1,tick=10000
Thread#0,tick=20000
Thread#1,tick=15000
Thread#0,tick=25000
Thread#1,tick=20000
Thread#0,tick=30000
Thread#1,tick=25000
Thread#0,tick=35000
Thread#1,tick=30000
Thread#0,tick=40000
Thread#1,tick=35000
Thread#1,tick=40000不应该是Thread#1完了才是
Thread#0吗?


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Domado 发表于 2019-8-12 18:26
楼主要实现的是什么功能?
氓之嗤嗤 发表于 2019-8-12 18:36
 线程的优先级说明在程序中该线程的重要性。系统会根据优先级决定首先使用哪个线程,但这并不意味着优先级低的线程得不到运行,只是它运行的几率比较小而已,
百度线程优先级
氓之嗤嗤 发表于 2019-8-12 18:39
gunxsword 发表于 2019-8-12 18:43
多线程不是顺序执行的!!
头像被屏蔽
加油 发表于 2019-8-12 18:51
提示: 作者被禁止或删除 内容自动屏蔽
Janem 发表于 2019-8-12 19:10
优先级只是概率被运行的概率较大 不是固定顺序 你运行多次 多次结果都不会一样的
wuchengqun520 发表于 2019-8-12 19:21
线程优化级并不是指定即有效  完全由cpu自身决定线程的优先级
lovejun 发表于 2019-8-12 19:51
优先级高只是说明运行的几率大,不是100%
wjw0716 发表于 2019-8-12 20:55
建议先了解一下操作系统的相关课程
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 02:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表