zoukankan      html  css  js  c++  java
  • 锁标记如果过多,就会出现线程等待其他线程释放锁标记

    锁标记如果过多,就会出现线程等待其他线程释放锁标记,而又都不释放自己的锁标记供其他线程运行的状况。就是死锁。

    死锁的问题通过线程间的通信的方式进行解决。

    线程间通信机制实际上也就是协调机制。

    线程间通信使用的空间称之为对象的等待队列,则个队列也是属于对象的空间的。

    Object类中又一个wait(),在运行状态中,线程调用wait(),此时表示着线程将释放自己所有的锁标记,同时进入这个对象的等待队列。

    等待队列的状态也是阻塞状态,只不过线程释放自己的锁标记。

    Notify()

    如果一个线程调用对象的notify(),就是通知对象等待队列的一个线程出列。进入锁池。如果使用notifyall()则通知等待队列中所有的线程出列。

     1 package TomTexts;
     2 import java.io.*;
     3 public class TomTexts_35 {
     4 
     5     public static void main(String args[])
     6     {    byte buffer[]=new byte[128];
     7         System.out.println("请输入数据,回车后保存到文件test.txt");
     8         System.out.println("输入 # 则退出!");
     9         try{
    10             FileOutputStream f=new FileOutputStream("test.txt");
    11             while(true){
    12                 int n=System.in.read(buffer);
    13                 if(buffer[0]=='#' )     break;
    14                 f.write(buffer,0,n-1);
    15                 f.write('
    ');
    16             }
    17             f.close();
    18         }catch(IOException e)
    19             {
    20                 System.out.println(e.toString());
    21             }
    22     }
    23 
    24 }
  • 相关阅读:
    随感
    to Live On
    记Weblogic部署BUG(websocket)
    CentOS更换yum源配置
    Java-14常用类-03=String类详解
    大牛博客推荐
    java-14常用类-02=Java中的String类
    npm-02 修改NPM下载地址(转换地址与下载源)
    selenium-10 selenium原理+ide录制+文件上传+弹框处理
    测试基础介绍
  • 原文地址:https://www.cnblogs.com/borter/p/9425119.html
Copyright © 2011-2022 走看看