JDK5.0之前就已经有了两种解决线程安全的问题: 同步代码块 同步方法 JDK5.0后新增了一种解决方案: 同步锁 同步的方法虽然能解决线程安全问题,但它带来的坏处就是降低了效率。所以,我们应该尽量减少需要同步的代码块,必不可少的地方才去用同步方法。 我们首先分别用继承Thread以及实现Runnable接口的方法,写出一个含线程安全的程序。 模拟业务:多窗口卖票(使用多线程模拟多个窗口),共有…
在Java中,单例模式分为饿汉式和懒汉式。默认情况下,懒汉式是线程不安全的,懒汉式代码如下: class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance () throws InterruptedException { …
读取输入 要想通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的Scanner对象。 Scanner scan = new Scanner(System.in); 然后,就可以通过scan的各种方法来读取输入了。 String nextLine() 读取输入的一整行 int nextInt() 读取输入中的单词(以空格隔开),若读取的不是整型,则抛出异常 double n…