这个程序一个线程画圆,一个线程画矩形,我用了synchronized这个关键字想实现两个线程同步运行,可是结果两个线程一起运行了,我是新手,请帮忙看看,哪儿有问题,如何改是好,谢谢了!

程序如下:

import java.awt.*;
import javax.swing.*;

class MyThread extends Thread
{
Container fp;
int flag = 0

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

    2044人对此回答表示赞同

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

    14人对此回答表示赞同

    你这程序就是同步运行吧 不知道你说的是什么意思 其实程序是在同步运行 画完一个再画另外一个 只不过切换的速度很快 而且sleep的时间是一样的 所以你看不出来是同步运行的 吧等待代码改为Thread.sleep((int)(Math.random()*10000));再看一下
    同步这个概念应该是在判断与执行之间存在线程安全问题才产生的 你这个程序用不用同步根本没有区别的
    而且你用extends Thread的类时不可以用synchronized同步方法,因为当你创建新的线程时会new
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Jack

    9人对此回答表示赞同

    程序没有任何问题,是你的电脑太快了,看上去像一起画的。我给正方形加上3秒延时,效果就很明显了

    import java.awt.*;
    import javax.swing.*;

    class MyThread extends Thread {
    Container fp;

    int flag = 0;

    public MyThread(Container fp, int flag) {
    t
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 吴痕

    1人对此回答表示赞同

    mark
    个人觉得你使用sleep(1000)并不能把线程锁死啊,等时间到了,线程自己就获取到锁执行了
    展开
    1
    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
扫码咨询

扫码咨询套餐

回到顶部