• 多线程


    Thread类   

    建立Thread类的子类,建立其实例,调用start方法,这是利用Thread类的子类以启动线程的方法

    Runable接口 

    建立一个实现了Runable接口的类,将该实例传给Thread的构造器,调用start方法,这是利用实现了Runable接口来启动线程的方法

    无论利用Thread类的子类方法,还是利用实现了Runable接口的类的方法,用来启动新线程的方法永远是Thread类的start()方法

    Thread类本身也实现了Runable接口,也有run方法。只不过Thread类的run方法主体里是空的没有执行任何部分。Thread类的run方法通常都是被子类覆盖(override)

    Thread类的sleep()方法jike即可暂时停止线程的执行操作,sleep是Thread类的类方法   Thread.sleep(1000);让当前线程暂时停止1s

    sleep方法的调用被放在try-catch里面   可能会抛出InterruptedException的异常,是用在取消线程处理时的异常

    设置ns单位

    利用sleep方法所设置的暂时停止时间并不是很精密,所以不太适用实时性控制的方面,若利用以下的语法结构,则可以ns(10的-9次方s)为单位设置停止时间

    Thread.sleep(ms,ns);

    不过一般的java处理系统并不需要用到这么精密的控制方式,事实上,控制的精确度有多高要依java处理系统而定。

    唤醒

    半路唤醒 利用interrupt

    线程互斥

    当某个线程正在执行这个部分时,则限制其他线程不可执行此部分。这种像是交通管制的操作通常称为共享互斥或互斥控制(mutual exclusion)java语言在处理线程的共享互斥时会使用到关键字 synchronized方法

    synchronized方法

    当一个方法加上关键字synchronized声明之后,就可以让一个线程操作这个方法。。“让一个线程操作”并不是说只能让某一个特定的线程操作而已,而是一次只能让一个线程执行。这种线程称为synchronized方法,又称为同步方法。

    synchronized方法不允许同时有一个以上的线程执行。一旦线程获取这样的锁定(acquire)时,会组织其他线程进入

    有无锁定对非synchronized的getName方法完全没有影响。即使线程没有获取锁定,多个线程仍可以自由进入非synchronized方法

    当执行synchronized方法的线程结束结束执行该方法后,锁定即被释放(release)

  • 相关阅读:
    Gym
    struts2.5 使用感叹号和通配符实现动态方法调用无效的问题及解决!
    Offfice 多重版本key残留并存的异常问题
    IDEA Struts2 truts-default显红的解决办法
    Struts2的库在 IDEA 的外联库就会报错,不知道为什么。
    计算机二级python 知识点篇(第三方库)
    计算机二级python 知识点篇(python标准库)
    计算机二级python 知识点篇(内置函数整理)
    计算机二级python 知识点篇(文件和数据格式化)
    计算机二级python 知识点篇(组合数据类型)
  • 原文地址:https://www.cnblogs.com/sunshine-in/p/4071923.html
Copyright © 2020-2023  润新知