Java多线程使用方法

目录

多线程大致概念:

首先我们先了解以下在操作系统中进程和线程的区别:

线程的五大阶段:

多线程的实现:

关于线程的操作与使用:


多线程大致概念:

一个程序至少有一个进程,一个线程,就拿我们打开一个直播来说,我们在看的时候会看到主播,会听见声音,会看到弹幕,以及送的一些礼物特效,这些都是通过线程来实现的,一台电脑它能分出的线程越多,分析的速度越快,他的配置就足够好。

首先我们先了解以下在操作系统中进程和线程的区别:

进程: 每个进程都有一个独立的代码与数据空间,进程之间切换会有比较大的开销,一个进程包含1--n个线程

线程: 同一类线程共享一个代码和数据空间,每个线程都有一个独立的运行栈和程序技术器,线程切换开销较小

我们每次打开一个线程或进程就会激活一部分的cpu性能

同知每次关闭一个线程或进程就会释放一部分的cpu性能

线程的五大阶段:

线程和进程一样,都分为五个阶段:创建、就绪、运行、阻塞、终止。

多线程的实现:

首先是连接接口(Runnable):

public class test implements Runnable

它会给我生成一个run类:

@Override
public void run() {}

我们可以在这里边进行需要进行的操作

    test test = new test();//类的调用
    Thread thread = new Thread(test);//线程的调用,在我们调用的方法中也可以设置线程名

我们需要通过类的调用去设置需要调用的线程方法

关于线程的操作与使用:

获取和设置线程名称:

thread.getName();//获取线程名字

thread.setName("ly");//设置线程名字

 获取线程的优先级和设置线程的优先级:

thread.getPriority();//获取线程优先级返回的是一个int的数据类型
thread.setPriority();//设置线程优先级

线程优先级的设置有以下三种函数:

Thread.MAX_PRIORITY//最大
Thread.NORM_PRIORITY//中等
Thread.MIN_PRIORITY//最小

线程的运行:

thread.start();//运行
thread.run();//运行

run方法是直接通过我们的main方法来调用的,start是调用我们写的那个线程方法,两者速度并无太大差别

在我们写的线程方法中也可以调用线程名只是方法较为特殊:

Thread.currentThread().getName();//需要方法名为前缀且加上一个currentThread函数

线程的睡眠:

//设置延迟时间
try {
    Thread.sleep(300);
} catch (InterruptedException e) {
    e.printStackTrace();
}//这里我们需要用try{}catch{}返回一下

代码实现如下:

public class test implements Runnable{
    public static void main(String[] args) {
        test test = new test();
        Thread thread = new Thread(test,"波动拳");
        thread.setPriority(Thread.NORM_PRIORITY);
        thread.start();
    }

    @Override
    public void run() {
        for (int i = 0; i < 3; i++) {
            System.out.println(Thread.currentThread().getName()+"第"+(i+1)+"发");
            if (i==2){
                System.out.println("开始为时5秒的充能");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                i=-1;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/ypf3442354429/article/details/124852367