JAVA-进程与线程及线程池

本文详细介绍了JAVA中的进程和线程概念,包括多进程、多线程的意义,以及线程的并发与并行。还讨论了线程的创建方式,如继承Thread类和实现Runnable接口,并提供了相关方法的说明。此外,文章提到了数据安全问题,列举了产生条件以及解决办法,如同步代码块和同步方法。最后,作者探讨了线程池的使用,特别是JDK1.5后的Executors工厂类和不同类型的线程池创建方式。
摘要由CSDN通过智能技术生成

进程

进程就是正在进行的程序,因为同一时间点计算机只能执行一个进程 ,计算机在不同的进程中快速的切换来达到多进程

多进程的意义:多进程的作用是提高CPU的使用率,而不是提高执行速度

线程

在一个进程中可以执行多个任务,而每一个任务可以看做一个线程

多线程的意义:多线程是为了提高应用程序的使用率,而不是提高执行速率

程序在运行过程中,都是在抢CPU的执行权,而且是随机的

并行和并发:

并行:某一时间段内同时运行多个程序

并发:某一时间点同时运行多个程序

启动JVM就是一个多线程的例子,会自动启动一个主线程,并用主线程调用main方法,所以多线程应该至少有一个主线程,一个垃圾回收线程

线程的两种开启方式

一,继承Thread类

package org.westos.demo2;

public class MyTest2 {
    public static void main(String[] args) {
        
        Thread thread = Thread.currentThread();
        thread.setName("主线程");
        System.out.println(thread.getName());
        MyThread2 th1 = new MyThread2();
        th1.setName("范冰冰");
        MyThread2 th2 = new MyThread2();
        th2.setName("李冰冰");
        th1.start();
        th2.start();
    }
}
package org.westos.demo2;

public class MyThread2 extends Thread{
    @Override
    public void run() {//run方法中一般放比较费时的操作
        super.run();
        for(int i=0;i<100;i++){
            //this.getName() 获取当前线程的名称
            //Thread.currentThread() 获取当前正在执行的线程
            Thread thread = Thread.currentThread();
            System.out.println(thread.getName()+i);
        }
    }
}

二,实现Rannable方法

package org.westos.demo;

public class MyTest {

	public static void main(String[] args) {
		
		MyThread th = new MyThread();
		th.start();//开启方式1
		//th.start(); 注意不要重复的去开启线程
		//开启方式2:new Thread(new MyThread2()).start();
	}

}
package org.westos.demo;

public class MyThread2 implements Runnable {

	@Override
	public void run() {
		System.out.println("线程要执行的代码");
		
	}

}

getName()获取当前线程的名称

currentThread()获取当前正在执行的线程

setPriority()设置线程优先级,括号中写优先级别1-10,默认优先级都是5

getPriority()获取线程优先级

sleep()线程休眠,括号中写休眠时长,毫秒,一般会出现异常,需要处理

join()线程加入,一般要在线程开启之后再加入,线程加入表示等待该线程执行完毕后,其他线程才能再次执行

yield()礼让线程,暂停正在执行的线程对象,并执行其他线程,这个方法必须在开启线程前调用

setDaemon()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值