zoukankan      html  css  js  c++  java
  • Java 多线程学习笔记

    1. 无论使用哪种方式,最终都必须依靠 Thread 类才能启动多线程。

    2. 启动线程是调用 start 方法,而不是调用 run 方法。

    3. 同一个线程对象不能 start 2 次,否则将会抛异常:java.lang.IllegalThreadStateException。

    4. Thread 类和 Runnable 接口之间在使用上也是有区别的,如果一个类继承了 Thread 类,则不适合于多个线程共享资源,而实现了Runnable 接口,就可以方便地实现资源的共享。

    5. 

    1 MyThread my = new MyThread();
    2 new Thread(my).start();
    3 new Thread(my).start();
    4 new Thread(my).start();

    6.

    1 MyThread mt1 = new MyThread();
    2 MyThread mt2 = new MyThread();
    3 new Thread(mt1).start();
    4 new Thread(mt2).start();

    7. 创建 就绪 运行 阻塞 终止

    8. 线程调用 stop() 方法时或 run() 方法执行结束后,即处于死亡状态。处于死亡状态的线程不具有继续运行的能力。

    9. currentThread() 是 Thread 的一个静态方法,在你不重写父类 Thread 的这个方法的情况下,此时 this.currentThread 跟 Thread.currentThread 无任何区别。

    10. Thread-0

    11. Java 运行时,至少会启动两个线程,一个是 main 线程,另一个是垃圾收集线程。

    12. 主线程有可能比其他线程先执行完。

    13. 主方法的优先级是NORM_PRIORITY。

    14. 并非线程的优先级越高就一定会先执行,哪个先执行将由CPU的调度决定。

    15.

     

    16. 静态块优于主方法的执行,静态块优于构造块的执行。

    17. 访问权限{public|default|protected|private]}[final][static][synchronized]

      返回值类型|void 方法名称(参数类型 参数名称)[throws Exception1,]

    18. synchronized 标注对象中所有参与同步的代码块,如下代码所示:

    1 public synchronized void set(String name, String content){
    2     this.name = name;
    3     this.content = content;
    4 }
    5 public synchronized void get(){
    6     System.out.print(this.name +" ");
    7     System.out.print(this.content +"
    ");
    8 }

      对于以上的代码,如果一个线程访问这个对象的 set 方法,那么这个对象中的 set 方法的代码块同这个对象的 get 代码块同时被锁住,其他的线程不能访问他们的代码块。

    19. 结束线程不最好不要使用stop(),可以使用标志位。

    20. run()方法为线程的主体。

     21. run方法同我们写的其他的方法实在没有什么不同的方法,所以如果你通过对象调用run方法,按照正常的程序逻辑,自然是调用一次,和线程没有一毛钱关系的,对线程的具体实现是在start方法中进行的,通过相关机制,将run方法中的内容另起炉灶,脱离main方法的线程,自己独立拥有一个线程执行。

    22. 实现Runnable接口的类启用线程的方式是借用Thread的方法。

  • 相关阅读:
    Modified Mms.apkDiscontinued till I have free time
    文件管理器 Root Explorer v2.9.4 零售完全版
    QQREADEREFF8B4DFC3E8C03B
    CyanogenMod5 近乎完美的2.1ROM for G1 来了 感谢 cyanogen大神~~
    CyanogenMod5 Would you like a pony? (EXPERIMENTAL) [05/08 v5.0.7test3]
    商业周刊:摩托罗拉下注Android 不成功便成仁
    Cyanogen Updater 5.0 IS HERE!!!
    22个开源的PHP框架
    LotusPhp
    10 个免费超棒的编程用等宽字体
  • 原文地址:https://www.cnblogs.com/ddhjy/p/4132231.html
Copyright © 2011-2022 走看看