Java笔记(十)——多线程设计
来源:互联网 发布:美股交易员知乎 编辑:程序博客网 时间:2024/06/18 12:45
1.Java中有两种方法实现多线程:实现java.lang.Thread,或实现java.lang.Runnable接口(其实Thread也是实现了Runnable接口);
2.Thread子类的每一个对象都是一个线程,构造子类的重要步骤就是实现public void run()。 虽然线程的执行代码在run中,但是启动线程是通过调用public void start()函数进行的。调用start方法后,Java虚拟机会自动启动线程,从而由Java虚拟机按照并发机制统一调度线程,实现并发,不能直接调用run。而线程的运行就是执行run方法。
例如,
public dlass J_Thread extends Thread......new J_Thread().start();
3.Runnable存在的必要性在于Java中不存在多继承,实现接口Runnable是对多继承问题的一种解决方法,构造、启动线程方法如下:
public dlass A extends B implements Runnable......A a = new A();Thread t = new Thread(a);t.start();
4.线程分成后台线程(daemon thread)和用户线程(user thread),后台线程也称作守护线程,他与用户线程的区别在于当一个程序中只有后台线程在运行时,程序会立即退出。如果还有正在运行的用户线程则后台线程不回终止,后台线程常用来为其他线程提供服务。默认情况下线程是用户线程,可以用public final void setDaemon(boolean on)来设置,用public final boolean isDaemon()来判断。
5.线程是有优先级的,最高Thread.MAX_PRIORITY为10,最低Thread.MIN_PRIORITY为1,可以通过public final int getPriority()获取当前线程优先级,用public final void setPriority(int pri),pri应在1~10间,否则被截取。
6. 通过调用Thread的public static void sleep(long millis) throw InterruptedException使得当前线程进入睡眠状态。注意,sleep是Thread的静态成员方法,所以并不是调用它的线程进入睡眠,而是该调用语句所在线程进入睡眠,所以为避免混淆,尽量用Thread.sleep进行睡眠操作。
7.通过Thread的getName方法获取当前线程的名字,这个名字在构造线程对象时指定;
- Java笔记(十)——多线程设计
- JAVA基础笔记(十)多线程
- Java 多线程学习笔记(十) InheritableThreadLocal的使用
- 【黑马程序员】多线程,设计模式——Java复习笔记
- Java线程和多线程(十)——TimerTask
- Java多线程开发十——杂七杂八
- Java多线程系列(十)—Semaphore源码分析
- 设计模式学习笔记(十)——Decorator装饰
- 设计模式笔记(十) —— 观察者模式
- Java复习笔记—多线程
- Qt学习笔记(十)多线程
- Java多线程设计模式详解学习笔记——Introduction1 Java语言的线程
- java多线程设计模式——学习笔记(1)java语言的线程
- 黑马程序员——JAVA学习笔记(十)
- JAVA高级工程师课程笔记整理——(十)Servlet
- java学习笔记十——异常
- Java设计模式(十)
- 十、观察者模式——设计模式学习笔记
- SWT图形界面编程学习
- 1022. Digital Library (30)
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
- struts国际化和国际化输出占位符
- 1027. Colors in Mars (20)
- Java笔记(十)——多线程设计
- 作业3月6号
- Android开发环境配置的小问题 DDMS的devices中找不到模拟器
- 关于stdafx.h
- 使用while循环语句计算1~1000之间能被3和7同时整除的整数之和
- 1028. List Sorting (25)
- 【ProjectEuler】ProjectEuler_045
- 网络协议
- 9.3.1(0_1背包)