多线程基础(1)

线程是什么

每个线程都是一个个“执行流”,. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行
着多份代码。

进程和线程的区别

进程是包含线程的. 每个进程至少有一个线程存在,即主线程
进程和进程之间不共享内存空间. 同一个进程的线程之间共享同一个内存空间
进程是系统分配资源的最小单位线程是系统调度的最小单位。

Java 的线程 和 操作系统线程 的关系

线程是操作系统中的概念. 操作系统内核实现了线程这样的机制, 并且对用户层提供了一些 API 供用户使
用。Java 标准库中 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装.
每个线程都是一个独立的执行流,多个线程都是并发执行的。

创建线程的方法

继承 Thread 类

继承 Thread 类, 直接使用 this 就表示当前线程对象的引用

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("这里是线程运行的代码");
   }
   }//继承Thread 来创建一个线程类




MyThread t = new MyThread();//创建MyThread类的实例






t.start(); //调用方法开始运行

实现 Runnable 接口

实现 Runnable 接口, this 表示的是 MyRunnable 的引用. 需要使用 Thread.currentThread()

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("这里是线程运行的代码");
   }
   }// 实现 Runnable 接口




Thread t = new Thread(new MyRunnable());//创建 Thread 类实例, 调用 Thread 的构造方法时将 Runnable 对象作为 target 参数.




t.start(); //调用方法开始运行

其他

// 使用匿名类创建 Thread 子类对象
Thread t1 = new Thread() {
    @Override
    public void run() {
        System.out.println("使用匿名类创建 Thread 子类对象");
   }
};









// 使用匿名类创建 Runnable 子类对象
Thread t2 = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("使用匿名类创建 Runnable 子类对象");
   }
});





// 使用 lambda 表达式创建 Runnable 子类对象
Thread t3 = new Thread(() -> System.out.println("使用匿名类创建 Thread 子类对象"));
Thread t4 = new Thread(() -> {
    System.out.println("使用匿名类创建 Thread 子类对象");
});

多线程的优势

增加运行速度–可以观察多线程在一些场合下是可以提高程序的整体运行效率的。
使用 System.nanoTime() 可以记录当前系统的 纳秒 级时间戳.
serial 串行的完成一系列运算. concurrency 使用两个线程并行的完成同样的运算.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值