• 释放锁标记只有在Synchronized代码结束或者调用wait()。


    释放锁标记只有在Synchronized代码结束或者调用wait()。

    注意锁标记是自己不会自动释放,必须有通知。

    注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密。

    WHILE会放置程序饶过判断条件而造成越界。

    补充知识:

    suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记)。恢复状态的时候用resume()。Stop()指释放全部。

    这几个方法上都有Deprecated标志,说明这个方法不推荐使用。

     

    一般来说,主方法main()结束的时候线程结束,可是也可能出现需要中断线程的情况。对于多线程一般每个线程都是一个循环,如果中断线程我们必须想办法使其退出。


    如果主方法main()想结束阻塞中的线程(比如sleep或wait)

    那么我们可以从其他进程对线程对象调用interrupt()。用于对阻塞(或锁池)会抛出例外Interrupted Exception。

    这个例外会使线程中断并执行catch中代码。

     

    多线程中的重点:实现多线程的两种方式,Synchronized,以及生产者和消费者问题(ProducerConsumer.java文件)。

  • 相关阅读:
    maven上传jar包规范
    java.util.ConcurrentModificationException
    求集合中的最大值和最小值
    对象/集合转换成json
    字符串直接赋值和构造赋值的区别
    CSV文件读取
    读取properties配置文件
    图片轮播 js代码
    工作流数据库字段设计-审批流程。。
    @Html.Partials 加载分布视图传参数
  • 原文地址:https://www.cnblogs.com/borter/p/10744113.html
Copyright © 2020-2023  润新知