zoukankan      html  css  js  c++  java
  • Thread

    1、java有10个优先级,xp有7个,solaris则有2的31次幂个。一般建议不设置优先级,如果设置优先级的话,建议设置

    Thread.MAX_PRIORITY;
    Thread.MIN_PRIORITY;
    Thread.NORM_PRIORITY;这三个优先级

    1、任意时刻可以调用Thread.setPriority()来设置线程的优先级,会影响线程的调度频率。

    2、Thread.getPriority()

    3、线程之间异常是不能扩散的,当一个线程最后没有捕获异常,线程扩散到run()之后该线程就结束了。所以需要设置一个线程处理器来进行回收资源。

        线程调用异常handler的顺序是这样的:1、本线程的异常处理器  2、如果1没有调线程所在组的异常处理器  3、2没有的话调用Thread的default异常处理器。

    4、Thread.isDeamon(),Thread.setDeamon()   守护线程,当非守护线程都结束的时候,守护线程自动结束。

        后台线程显示创建的所有线程默认都是daemon线程。而且daemon的run没有必要执行finally子句就会结束。

       当非daemon线程全部结束完成之后,daemon线程会立刻终止,不执行finally子句。

    5、Thread.isAlive判断线程是否结束

    6、Thread.join()等待线程结束,也就是isAlive()返回false本线程才继续。

          Thread.join(时间)

          可以被中断

    7、Thread.yield()建议调度下一个线程

    8、不要过多的追究线程组,不值得。

    9、一般将属性设置为private。

    10、synchronized加在方法上面实际上给this加的锁,注意,一个线程可以不断的获得一个锁,只要本线程已经获得了锁,然后再请求的时候还是能获得,JVM会对锁进行计数。

    11、class对象也能加锁,是通过在static方法上加synchorized。

    12、ReentrantLock能提供更细粒度的锁操作方式,同时提供了很多的特性,如设置加锁的时间,设置可被中断。一般不使用Lock,直接使用synchorized,在性能调优的时候才使用Lock。

  • 相关阅读:
    Python反射机制
    并发和并行的区别
    I/O模型
    python 字符串零散方法记录
    python 关于占位符格式化
    Python 十进制转二进制、八进制、十六进制
    python中str函数isdigit、isdecimal、isnumeric的区别
    文件的修改
    LF 模块三
    stackoverflow os.path.abspath and os.path.realpath
  • 原文地址:https://www.cnblogs.com/YDDMAX/p/5222648.html
Copyright © 2011-2022 走看看