前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java线程编程

java线程编程

原创
作者头像
大学里的混子
修改2018-11-01 16:02:41
3920
修改2018-11-01 16:02:41
举报
文章被收录于专栏:LeetCodeLeetCode
代码语言:javascript
复制
 System.out.println(Thread.currentThread().getName());
代码语言:javascript
复制
test.start();
test.start();
多次调用start会出现:
Exception in thread "main" java.lang.IllegalThreadStateException
代码语言:javascript
复制
Thread.sleep(1000);
System.out.println("behind sleep");在Thread.sleep(1000);结束后执行
代码语言:javascript
复制
Run run = new Run();
Thread thread = new Thread(run);
thread.start();

不管是接口类型还是Thread类型,都可以作为Thread构造方法的参数。
代码语言:javascript
复制
多个线程同时操作一个变量会出错,线程不安全。
synchronized可以在任何对象或者方法上加锁

代码语言:javascript
复制
currentThread()方法返回代码正在被哪个线程调用的信息
isAlive()方法判断当前的线程是否处于活动状态(启动但是尚未终止) thread.isAlive()
System.out.println(thread.isAlive()); 线程执行完返回false

代码语言:javascript
复制
停止一个线程有三种方法:
1.使用退出标志,是线程正常退出,也就是run方法执行完毕后终止
2.使用stop,不建议使用
3.使用interrupt
代码语言:javascript
复制
1.this.interrupted():测试当前线程是否已经中断,执行后具有将状态标志清除为false的功能
2.this.isinterrupted():测试线程是否已经中断,不清除状态标志
代码语言:javascript
复制
main(){
     thread.interrupt();
}
代码语言:javascript
复制


for (int i = 0;i<500000;i++){
    if (this.isInterrupted())
        break;
    System.out.println(i);
}
System.out.println("这里还是会执行");  
代码语言:javascript
复制
加上一个异常,就不执行for后面的语句了,实现了线程的终止
public void run() {
    super.run();
    try {
        for (int i = 0;i<500000;i++){
            if (this.isInterrupted())
                throw new InterruptedException();
            System.out.println(i);
        }
        System.out.println("这里还是会执行");
    }catch (InterruptedException e){
        e.printStackTrace();
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档