关于Thread类的简单使用

Posted Dolphin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Thread类的简单使用相关的知识,希望对你有一定的参考价值。

线程:
线程也被称为轻量级进程,进程和线程都提供一个执行环境,但创建一个新的线程比创建一个新的进程资源要少得多

线程存在进程里,也就是说一个进程至少包括一个线程

线程共享进程的资源,包括内存和打开的文件,所以这使得通信可能会有问题

多线程执行是java平台的一个基本特征

每个应用程序至少有一个线程,但是必需有一个主线程,这个主线程是用来创建额外的线程

 

这是我打的一个例子:

testThread类:

package com.d7.util;

public class testThread{

    public static void main(String[] args) {
        //创建线程有两种方法
        //1.实现Runnable接口
        //2.继承Thread类
        Thread thread=new Thread(new myWork());
        //启动一个线程
        thread.start();
        Thread thread2=new Thread(new myWork());
        thread2.start();
        
        Thread thread1=new forClass();
        thread1.start();
        //终止一个进程会触发InterruptedException异常,所以在catch里添加return即可终止
        thread1.interrupt();
    }

}

myWork类:

package com.d7.util;

//实现Runnable接口
public class myWork implements Runnable {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("我是一个线程");
    }

}

forClass类:

package com.d7.util;

//继承Thread类
public class forClass extends Thread{

    @Override
    public void run() {
        String [] arrstr= {
                "Hello",
                "2017",
                "bye",
        };
        for(int i=0;i<arrstr.length;i++) {
            System.out.println(arrstr[i]);
            //这是判断这个静态值是否为真,为真就说明外部终止了这个线程,里面写return就终止了这个线程
            //下面还有一种方法如果要用二选一
            /*if(this.isInterrupted()) {
                System.out.println("if终止");
                return;
            }*/
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                //只要外部终止了就会触发这个异常,所以加return就不会往下执行
                System.out.println("终止");
                return;
            }
        }
    }

}

以上是关于关于Thread类的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

关于 std::thread 类的问题

关于 pthreads 版本 3 的 Thread 类的 Pthreads::kill() 的替代方法是啥

关于Thread类的start方法

discuz X3.1 关于分表 和 分表数据迁移

模拟售票程序(关于多线程共享的练习)

NDK: ant 错误 [javah] Exception in thread "main" java.lang.NullPointerException 多种解决办法(代码片段