线程定义, 实现方式及代码实现.

本文介绍了线程的基本概念,以及在Java中创建线程的三种方式:继承Thread类、实现Runnable接口以及实现Callable接口。通过实例展示了如何启动线程,并强调了多线程中的安全和通信问题。
摘要由CSDN通过智能技术生成

多任务(Multitasking)
操作系统将CPU时间动态地划分给每个进程,操作系统同时执行多个进程,每
个进程独立运行。以进程的观点来看,它会以为自己独占Cpu的使用权。

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务进程是动态的概念,当程序在执行时,系统分配进程;多线程是在同一进程下,充分利用资源 ,多条执行路径,共享资源 (cpu data code)

===============================================
多线程 :
线程 : 程序中执行的顺序流
多线程 : 多任务执行,多路径执行
多任务之间可以实现同时执行

 优点 : 提高效率,提高性能
 缺点 :设计更复杂,可能会造成数据不安全
了解 : 三高网站 : 高可能  高性能  高并发

进程与线程的区别 :
    进程 : 资源分配的最小单位,每个进程都具有自己的代码与数据空间(进程上下文),进程之间的切换资源消耗大
    线程 : cpu调度与执行的最小单位,一个进程至少包含1~n个线程,同一个进程的多个线程共享这个进程的代码数据空间,每个线程都有自己的运行栈与程序计数器,线程的切换消耗小

多线程的学习内容 :
线程的创建 *****
线程的状态
线程的安全 *****
线程通信

===============================================

线程创建方式 1:thread

    1.继承Thread类,重写run() + start()开启线程
    2.实现Runnable接口,重写run() + start()开启线程  --> *****
        优点 :
            接口多实现,类只能单继承
            实现资源共享
    3.实现juc包下Callable接口,重写call() + 线程池  --> 了解
public class Class002_Thread extends Thread {
   
    /*
        定义线程体
     */
    @Override
    public void run() {
   
        for(int i =1;i<=20;i++){
   
            System.out.println("一边喝水");
            try {
   
                Thread.sleep(1);  //让出cpu资源
            } catch (InterruptedException e) {
   
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
   
        //主线程
        //创建线程
        Class002_Thread th = new Class002_Thread();
        //开启线程
        th.start();  //告诉cpu,我们线程可以被调度

        for(int i =1;i<=20;i++){
   
            System.out.println("一边吃饭...");
            try {
   
                Thread.sleep(1);  //让出cpu资源
            } catch (InterruptedException e) {
   
                e.printStackTrace();
            }
        }
    }
}

线程创建方式 :2.实现Runnable接口

        优点 :
            接口多实现,类只能单继承
            实现资源共享

=============

public class Class003_Thread implements Runnable{
   

    public static void main(String[] args) {
   
        Class003_Thread ct = new Class003_Thread();

        //创建线程对象
        Thread th = new Thread(ct);

        //HR代理角色     Manager真实角色
        //静态代理实现 : 代理角色与真实角色实现相同的接口     代理角色持有真实角色的引用      代理行为
        //new Hr(manager).addUser();
        //开启线程
        th.start();


        //new Thread(new Class003_Thread()).start();

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值