`

多线程和以及同步,Thread,Runable, synchronized

    博客分类:
  • java
阅读更多

public class Test {

    public static void main(String[] args) {

 

        S run = new S();
        new Thread(run).start();            //多线程
        new Thread(run).start();
    }

 

}

 

class S implements Runnable{
   
    private int x = 1;
    private int y = 1;
    public void run(){
        for(;;){
            synchronized(this){                  //如果同步,x始终等于y,2877590:2877590
                System.out.println(x++ + ":" + y++);  // 如果不同步 出现1934945:1934940,为啥会出现这种情况
            }
        }
    }
}

分享到:
评论

相关推荐

    简单实现多线程同步示例(模拟购票系统)

    本示例“简单实现多线程同步示例(模拟购票系统)”旨在通过一个具体的实例,帮助开发者理解如何在Java中创建并管理多线程以及如何实现线程同步,确保数据的一致性和正确性。 首先,我们要明确多线程的基本概念。在...

    java_Thread.rar_java thread runable_thread runable

    总结来说,Java线程是通过`Thread`类或`Runnable`接口实现的,理解并熟练掌握线程的创建、管理和同步机制是Java多线程编程的关键。合理使用线程可以帮助提高程序性能,但也需要注意线程安全和资源管理,避免出现竞态...

    2020面试题总结多线程篇.pdf

    多线程实现方式主要有四种:继承 Thread 类、实现 Runable 接口、实现 Callable 接口、通过 FutureTask 包装器。这四种方式可以满足不同的需求,例如继承 Thread 类可以实现线程的生命周期管理,而实现 Runable 接口...

    java-龟兔赛跑Runable

    综上所述,“java-龟兔赛跑Runable”是一个很好的学习多线程编程的实践案例,它涵盖了Java线程的基本概念,包括`Runnable`接口的使用、线程的启动与同步,以及异常处理等关键知识点。通过实现这个项目,开发者可以...

    使用Runnable实现数据共享

    在多线程编程中,数据共享是一个非常关键的议题,特别是在Java这样的并发环境中。...在多线程编程中,正确地同步和管理共享数据是至关重要的,可以避免数据竞争和不一致的问题,确保程序的正确性和稳定性。

    java基础11111111111111111111

    `Thread.sleep()`用于暂停线程,`synchronized`关键字用于同步访问共享资源。 11. **网络编程**: Java的`java.net`包提供了Socket和ServerSocket类,可以进行TCP/IP通信。`java.nio`包则引入了非阻塞I/O,提高了...

    浙大远程 高级程序设计(JAVA) 在线1作业.doc

    以上是 Java 编程语言中涉及的一些基本概念和知识点,包括集合框架、多线程、内存管理、数据类型、绘图方法、字符串操作、布局管理、文件输入输出以及同步控制。这些都是 Java 学习者需要掌握的基础内容。

    java考试题及答案

    Java编程语言在日常开发和学习中涉及众多知识点,这些题目涵盖了基础语法、对象实例化、接口、数据类型、方法调用、多线程、输入输出流、布局管理器、内存管理和异常处理等多个方面。让我们逐一解析这些题目所涵盖的...

    Java测试题2答案

    AE A public class X implements Runable{ public void run(){ ......} } B public class X implements Thread{ public void run(){ ......} } C public class X implements Thread{ public int run(){ ......

    java经典面试2010集锦100题(不看你后悔)

    B) 在Java中布尔类型不能和数字之间不能来回转换,即false和true不对应任何零或非零的值。 C) 双精度类型double比单精度类型float具有更高的精度和更大的表示范围,但float类型具有速度快、占用内存小的优点。 D) 在...

Global site tag (gtag.js) - Google Analytics