java 多线程概念

不定时更新
线程:一个程序可以同时执行多个任务,每个任务可以说是一个线程。
sleep:会抛出interruptedException异常
sleep的一个catch:Thread.currentThead().interrupt();
线程状态:获取状态方法 getState
有五种状态
1.New(新创建的线程
2 runable 可运行
3 Blocked 被阻塞
4 waiting 等待
5 timed waiting 计时等待
6 Teminated 被终止
关系如下关系图
线程优先级 : 高度依赖操作系统的实现 故少用
竞争条件:两个或者两个以上的进程 共享对同一数据的存取 ,各线程访问数据的次序 可能会产生讹误的现象
锁对象: java提供的的synchronized 解决竞争条件的一种解决方案
我们在之前的写法是

 public void method() {
        
       mylock.lock();//a ReentrantLock 
        try {
            //your code
        } finally {
            mylock.unlock();
        }
    }

现在的写法是

public synchronized void method(){
//you code
}

同步阻塞锁:除了同步获得锁还有另外一种机制获得锁

public synchronized void method(obj){
//you code
}

监视器:
只包含私有域的概念
每个监视器都含有锁
使用该锁对所有的方法加锁 调用加锁 返回解锁
多个相关条件
Volatile:加锁 免锁机制 告诉编译器可以被其他进程读取
final:可以让程序看到 构建完的之后调用
锁超时

 public void method() {
        
       if(mylock.trylock(100,YimeUnit.MILLISECONDS){//a ReentrantLock 
        	try {
          	  //your code
        	} finally {
            mylock.unlock();
       		}
        }
        else{
        //do else thing
        }
    }

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试