多线程的初步学习
2015-10-08 20:44
197 查看
一、Java中多线程的创建和使用
① 继承Thread 类和实现Runnable接口
② Thread类的主要方法
③ 线程的调度与实现优先级
程序、进程与线程的关系:
程序是静态的,进程是动态的,进程可细分为线程。
多线程的创建和启动 需要通过java.lang.Thread类来实现
例如:
//创建一个子线程:完成1-100自然数的输出,主线程执行相同的操作
//创建方法1:继承java.lang.Thread 类
//1、创建一个继承与Thread类的子类
Class SubThread extends Thread{
//2、重写Threa类的run()方法,方法内实现子线程的功能
Public void run(){
For(int i=1;i<=100;i++){
System.out.println(i);
}
}
Public class TestThread{
Public static void main(String args[]){
//3、创建一个子类的对象
SubThread st=new SubThread();
//4、调用线程的start():启动此线程调用相应的run()方法
St.start();
For(int i=1;i<=100;i++){
System.out.println(i);
}
}
}
}
在此需要注意,一个线程只能执行一次start()方法。若想要开启两个线程,则需要再创建一个子类对象,执行start()方法。
若用st.run();则并没有启动线程,必须用start()方法启动。
不能通过Threa实现类对象的run()去启动一个线程。
Thread的常用方法:
1、start():启动线程并执行相应的run()方法
2、run():子线程要执行的代码放入run()方法中
3、currentThread():静态的,调去当前线程
4、getName():获取此线程的名字
5、setName():设置此线程的名字
6、yield():调用此方法的线程,释放当前CPU的执行权
7、Join():在A线程中调用B线程的join()方法,表示:当执行到此方法,A线程停止执行,直至B线程执行完毕,A线程再在join方法后执行。
8、isAlive():判断啊当前线程是否还存活
9、Sleep(long l):显示的让当前线程睡眠l毫秒
10、设置线程的优先级
线程的优先级控制
1) MAX_PRIORITY(10);//最高优先级
2) MIN_PRIORITY(1);//最低优先级
3) NORM_PRIORITY(5);//默认的优先级
涉及到的方法:
① getPriority():返回线程的优先值
② setPriority(int newPriority):改变线程的优先级
线程创建时继承父线程的优先级
一、Java中多线程的创建和使用
① 继承Thread 类和实现Runnable接口
② Thread类的主要方法
③ 线程的调度与实现优先级
程序、进程与线程的关系:
程序是静态的,进程是动态的,进程可细分为线程。
多线程的创建和启动 需要通过java.lang.Thread类来实现
例如:
//创建一个子线程:完成1-100自然数的输出,主线程执行相同的操作
//创建方法1:继承java.lang.Thread 类
//1、创建一个继承与Thread类的子类
Class SubThread extends Thread{
//2、重写Threa类的run()方法,方法内实现子线程的功能
Public void run(){
For(int i=1;i<=100;i++){
System.out.println(i);
}
}
Public class TestThread{
Public static void main(String args[]){
//3、创建一个子类的对象
SubThread st=new SubThread();
//4、调用线程的start():启动此线程调用相应的run()方法
St.start();
For(int i=1;i<=100;i++){
System.out.println(i);
}
}
}
}
在此需要注意,一个线程只能执行一次start()方法。若想要开启两个线程,则需要再创建一个子类对象,执行start()方法。
若用st.run();则并没有启动线程,必须用start()方法启动。
不能通过Threa实现类对象的run()去启动一个线程。
Thread的常用方法:
1、start():启动线程并执行相应的run()方法
2、run():子线程要执行的代码放入run()方法中
3、currentThread():静态的,调去当前线程
4、getName():获取此线程的名字
5、setName():设置此线程的名字
6、yield():调用此方法的线程,释放当前CPU的执行权
7、Join():在A线程中调用B线程的join()方法,表示:当执行到此方法,A线程停止执行,直至B线程执行完毕,A线程再在join方法后执行。
8、isAlive():判断啊当前线程是否还存活
9、Sleep(long l):显示的让当前线程睡眠l毫秒
10、设置线程的优先级
线程的优先级控制
1) MAX_PRIORITY(10);//最高优先级
2) MIN_PRIORITY(1);//最低优先级
3) NORM_PRIORITY(5);//默认的优先级
涉及到的方法:
① getPriority():返回线程的优先值
② setPriority(int newPriority):改变线程的优先级
线程创建时继承父线程的优先级
相关文章推荐
- tomcat 根目录 session
- Unity 学习笔记(1)
- 此文为转载,虽然写的是PHP,但是思路同样值得javaer参考!
- 杭电acm--2080
- Python学习笔记 -- 第四章
- 面试题30:最小的k个数(未)
- CodeForces 149D Coloring Brackets(区间DP+dfs)
- thinkphp模板页限制标题字数
- Linux内核工程导论——存储:通用块层
- 【Sow&Harvest】体验C++第一个月(开虐)
- 单元测试应该测什么
- 目标检测光流法(四):matlab下光流法工具箱
- 下拉框 选择日期
- deeplearning系列(四)主成分分析与白化
- Intent Firewall 防火墙
- 自定义BaseAdapter
- C++编译详解
- Linux inode耗尽导致图片/文件无法上传
- qt5不能输入中文问题
- extern 关键字使用