zoukankan      html  css  js  c++  java
  • 多线程

    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)

  • 相关阅读:
    View注入框架:Butterknife简单使用
    Android之——自己定义TextView
    算法练习--小球下落
    【MVC架构】——怎样利用Json在View和Controller之间传递数据
    ZOJ 3494 BCD Code (AC自己主动机 + 数位DP)
    排序算法之归并排序
    C++_关于const 的全面总结
    silent install oracle 11.2.0.1 x86_64 for linux
    struts2请求过程源代码分析
    Hadoop自学笔记(一)常见Hadoop相关项目一览
  • 原文地址:https://www.cnblogs.com/sunshine-in/p/4071923.html
Copyright © 2011-2022 走看看