public void run() {
---------其它代码------
System.out.println("1");
System.out.println("2");---------其它代码------
}
我的意思是,如何才能让这两条语句不被其它线程打断,我要它们必须顺序的执行
只是这两条语句,而不是整个线程

解决方案 »

  1.   

    执迷不悟
    synchronized (System.out) {
        System.out.println("1");
        System.out.println("2");
    }
    自己变通一下
      

  2.   

    好像无法做到,线程的切换是由cpu控制的
    你应该考虑你的需求的合理性。
    或者可以贴出来大家讨论一下。
      

  3.   

    Object object = new Object();
    public void run() {
    ---------其它代码------
    synchronized(object){
      System.out.println("1");
      System.out.println("2");
    }
    ---------其它代码------
    }
      假如说这两个语句和别的线程没有没有临界资源要共享的话,就算被打断也无所谓,这样的同步我想实现了也没有意思。
      

  4.   

    我只是举个例子,
    我程序代码中的几句是不能被打断的!是啊,老线程没发现有这个方法
    不知道java5.0中的新多线程中的三个包有没有
    类似的用法!
      

  5.   

    对于“抢占式多任务”系统,时间片的轮转是由系统内核进行调度的,用户级的程序一般不能自主。JVM 我没有深入研究过,估计也应该属于类似“抢占式多任务”的吧……如果你要求“语句连续执行不能被打断”,这好像是“实时操作系统”的特点吧?我同意 sandyen(杉叶) 的说法,应该重新考虑需求的合理性。