摘要:
synchronized同步方法的问题 有些情况下,在方法上面加synchronized同步,会有性能问题。请看下面代码,来计算下两个线程执行的耗时: 使用同步代码块完善上面代码 上面代码打印结果是6秒,里面使用Thread.sleep方法来模拟了一个执行耗时较长的代码,假设这段代码并不会涉及到安全 阅读全文
摘要:
线程安全问题 先看下面代码出现的问题: 定义一个Task类,里面有一个成员变量和一个有boolean类型参数的方法,方法内部会根据传入参数修改成员变量的值。 创建一个Task对象,将这个对象放到两个线程中,在这两个线程中分别调用changeNum方法 上面的代码有可能会出现打印这样的结果: 正常情况 阅读全文
摘要:
唤醒正在睡眠的线程 可以使用Thread类中的interrupt方法唤醒正在睡眠的线程,调用interrupt方法会抛出一个InterruptedException的异常。 阅读全文
摘要:
设置线程优先级 可以通过使用Thread类中的setPriority方法设置线程的优先级。setPriority()方法接收一个int类型的参数,通过这个参数可以指定线程的优先级,取值范围是整数1~10,优先级随着数字的增大而增强。在Thread类中封装了三个int类型的数字:优先级最低:publi 阅读全文
摘要:
线程睡眠 Thread中的sleep方法可以使当前线程睡眠,线程睡眠后,里面的任务不会执行,待睡眠时间过后会自动苏醒,从而继续执行任务。 Thread中有两个重载的sleep方法sleep(long millis),指定睡眠毫秒数sleep(long millis, int nanos),第一个参数 阅读全文