随笔分类 - JAVA多线程
摘要:java中线程分为守护线程和非守护线程。当非守护线程结束时,守护线程自动结束。 典型的守护线程就是垃圾回收线程。 示例: package threadTestSHXC; public class MyThread extends Thread{ private int i=0; @Override
阅读全文
摘要:java中,线程优先级有1~10,10个级别。设置优先级小于1或大于10,抛出异常IllegalArgumentException()。 setPriority() 设置线程优先级 优先级常量 public final static int MIN_PRIORITY=1; public final
阅读全文
摘要:suspend()和resume()方法可用于暂停、恢复线程,但已经弃用,原因是suspeng()会造成线程的阻塞。独占锁,造成数据不同步。 对于一般线程类: 例如: public class MyThread extends Thread{ …… public void run(){ …… } }
阅读全文
摘要:stop() 强制停止线程;已经弃用;可能造成数据不一致等问题。 interrupt() 在线程中做停止标记,并非真的停止线程。 this.interrupted()测试当前线程是否中断,并清除中断状态。 this.isInterrupted() 测试线程是否已经中断。 方法声明: public s
阅读全文
摘要:package threadTest; public class CountOperate extends Thread{ public CountOperate(){ //CountOperate类初始化时,main线程在执行中,是alive的;this代表新建的thread对象,线程未启动非al
阅读全文
摘要:自旋锁是为实现保护共享资源而提出一种锁机制。不会引起资源申请者睡眠,执行单元A目前占用资源,B在等待资源,B一直等待不会进入睡眠,即不会发生上下文切换,可提高性能。 自旋锁应用应当注意过多的耗费cpu资源,和死锁。有以下原则应当遵守 1资源等待者设置尝试次数,超过一定次数放弃锁。 2 递归程序不能在
阅读全文
摘要:CAS 即 COMPARE AND SET的缩写。多线程资源竞争的一种解决办法,适当情况下可代替锁,可能提高新能。 说明: memoryValue 内存中值 expectedValue 期望值 newValue 更新的值 如果memoryValue = expectedValue,则将memoryV
阅读全文
摘要:synchronized关键用于多线程环境中实现操作的原子性、互斥性,确保有序的同一时间对同一资源访问。实际上,是锁的一种实现。 用法: class ClassA{ synchronized void methodA(){//修饰非静态方法1 //临界区 } synchronized static
阅读全文
摘要:一、共享性 多个线程共享同一块内存,会引起线程安全问题。 例如变量A同时被Thread1和Thread2访问,可能发生Thread1和Thread2读取的变量A不是同一个值,大多数情况下Thread1和Thread2不会恰好同一个时间读取变量A,而变量A在这段时间差中可能已被修改。 二、互斥性 对同
阅读全文
浙公网安备 33010602011771号