博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程相关基础知识
阅读量:6096 次
发布时间:2019-06-20

本文共 1568 字,大约阅读时间需要 5 分钟。

知识点:创建多线程方式、线程的常用方法、线程的生命周期

一:创建线程和启动

(1)extend继承Thread类,创建线程类

   //定义一个Thread的子类,重写run()方法

public class Window extends Thread {  @Override     public void run() {} }
public class WindowTest {
public static void main(String[] args) {
Window w1=new Window();  //创建子类Window的实例        w1.setName("子线程1");        w1.start();  //调用start()方法启动线程        Window w2=new Window(); w2.setName("子线程2"); w2.start();
}
} (2)implements实现Runnable接口,创建线程类 //定义一个Thread的实现类,重写run()方法 public class Window2 implements Runnable {
@Override public void run() {
}
}
 
public class WindowTest {
public static void main(String[] args) {
Window2 window2=new Window2(); //创建子类Window2的实例 Thread th1=new Thread(window2);//将Window2实例作为Thread的target,那么th1成为真正的线程对象 th1.setName("窗口1"); Thread th2=new Thread(window2); th2.setName("窗口2"); th1.start();//调用start()方法启动线程 th2.start(); } }
补充:继承和implements两种方式的比较: a.都实现了 Runnable 方法,public class Thread implements Runnable b.implements的实现方式要优于继承的方式    (1) 避免了java单继承的局限性    (2) 多线程要操作同一份资源(或者数据),implements实现的方式更适合些(只需new 一个对象,把这个对象作为Thread的构造方法的参数)
二:线程的生命周期
三:线程的常用方法 Thread的常用方法 1.start():启动该线程并执行相应的run()方法 2.run方法:子线程要执行的代码放到run()方法中 3.currentThread():静态的,调取当前的线程 4.getName():获取线程的名字 5.setName():设置此线程的名字 6.yeild():调用此方法的线程释放当前CPU的执行权 7.join():在A线程中,调用B线程的join()方法,表示:当执行到此方法,A线程停止执行, 直到B线程执行完毕,A线程再接着执行join()之后的代码 8.isAlive():判断当前线程是否存活 9.sleep(long l):显示地让当前线程睡眠l 毫秒 10.线程间通信:wait() notify() notifyAll() 11.设置线程的优选级 getPriority():返回线程优先级 setPriority(int NewPriority):设置线程的优先级
 

 

转载于:https://www.cnblogs.com/shuaifing/p/10585115.html

你可能感兴趣的文章
linux高级文件管理系统
查看>>
下一代云计算平台Apache Mesos定制自己的PaaS-1(Apache Mesos安装部署)
查看>>
四层和七层负载均衡的区别
查看>>
Heritrix maven
查看>>
解决Lync联盟用户之间只能IM聊天不能进行A/V呼叫问题
查看>>
java Log日志规范
查看>>
Linux系统日常管理
查看>>
深入理解PHP中的Session和Cookie
查看>>
Apache 日志分析
查看>>
第一期openstack远程培训10月10日开课(来晚就没有了)
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
CentOS7.0+PHP5.6+Nginx+Mysql5.7环境安装
查看>>
listview当选中某一个item时设置背景色其他的不变
查看>>
Confluence 6 针对站点维护使用只读模式
查看>>
聊聊你可能误解的Kubernetes Deployment滚动更新机制
查看>>
详解coredump
查看>>
bash脚本:break和continue
查看>>
Ajax跨域问题解决
查看>>