• 多线程


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

    正则表达式匹配汉字:[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() 【发出“唤醒”通知】

  • 相关阅读:
    BSGS算法(大步小步算法)
    UVA-11426【GCD
    UVA-1637【Double Patience】(概率dp)
    UVA-11174【Stand in a Line】
    About
    51nod 1355 斐波那契的最小公倍数
    CodeForces
    CodeForces
    CodeForces
    CodeForces 901C Bipartite Segments
  • 原文地址:https://www.cnblogs.com/xieshunjin/p/5506338.html
Copyright © 2020-2023  润新知