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

    实现多线程常用的有两个方法:

    正则表达式匹配汉字:[u4E00-u9FA5]

    1:继承Thread类

    2:实现Runnable/Callable接口

    相对而言,实现接口要相对比继承Thread类好,原因主要有2

    1:继承了Thread类以后,就不能继承其他类,只能单继承,存在局限性

    2:继承Thread类,不能用一个实例创建多个线程,但实现Runnable接口,该类的一个实例同时建立多个线程,Runnable接口适合资源共享

    通过以上两个方式,都需要重写run()方法,run()方法体中的代码块就是这条线程需要执行的内容

    在多线程中,常用的方法包括:

    1:run()   【方法体中的代码块就是这条线程需要执行的内容】

    2:start()   【启用线程】

    3:getPriority() 【返回线程的优先级】

    4:isAlive()  【测试线程是否还活着】

    5:join()   【加入一个线程,直到该线程死亡】

    6:sleep(long millis) 【线程休眠多少毫秒,进入阻塞状态】

    7:yield()  【暂停当前正在执行的线程对象,并执行其他线程。让出这次执行的机会】

    线程同步锁

    1:直接在方法前面加修饰符:synchronized  

    2:synchronized (锁住的对象){同步代码块}

    什么时候同步监视器释放加锁?

    1:同步代码块或方法执行完成

    2:在代码块中遇到break ,return跳出了代码块

    3:执行同步代码块或同步方法时遇到了未捕获的异常

    4:调用了同步监视器的wait(0方法

    wait()【控制线程暂停,释放同步监视器的加锁,会一直等待,直到收到“唤醒”通知】

    notify() 【发出“唤醒”通知】

    notifyAll() 【发出“唤醒”通知】

  • 相关阅读:
    CVS,GIT,Mercurial和SVN比较
    ubuntu-使用终端配置网络
    编写简单的hashCode方法
    编写高质量equals方法
    文件上传和下载
    Java常用命令
    增删查改-MySQL
    Newton迭代法-C++
    二分法-C++
    适配器模式
  • 原文地址:https://www.cnblogs.com/xieshunjin/p/5506338.html
Copyright © 2011-2022 走看看