现在在学多线程,下面这个程序运行之后不是我想要的结果,为什么?程序如下:
package threadtest;

class TestThreads extends Thread{
public void run(){
for(int i=0;i<=4;i++)
System.out.println("test is operating!");
}
}
public cla

展开全部
收起
5回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • panshh6

    20人对此回答表示赞同

    这个是cup智能分配问题,你这数字太小体现不出来,你换成1000甚至10000看看就可以发现它的分配规律并不是每个线程轮流来的
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • coco抠抠

    17人对此回答表示赞同

    这个很难交错运行的,主要原因是在多线程运行的时候,我们不能控制操作系统到底是调用哪一个线程,可能出现的结果有多种。
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 禁果

    16人对此回答表示赞同

    你把数字改大点就好了

    不过不会一个一个交错的

    这个设计cpu时间片的问题
    应该是A线程执行一段时间 然后主线程执行一段时间交互的
    即使是双核处理器 两个线程同时运行 也会有效率不同的问题的
    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Kelly小云鹅

    9人对此回答表示赞同

    是主线程和副线程同时运行
    你输出的太少了 只有4个

    把 for(int i = 0 ; i<4; i++) 改成while(true)试试
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Alan

    3人对此回答表示赞同

    循环里加上
    Thread.sleep(1);
    class TestThreads extends Thread{
    public void run(){
    for(int i=0;i<=4;i++){
    try {
    System.out.println("test is operating!");
    Thread.sleep(1);
    } catch (Interrupted
    展开
    3
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部