随笔分类 -  JAVA多线程

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