Java之多线程

一、认识线程

1.进程

进程(Process)是程序的一次动态的执行过程,进程特点:

        1)进程是系统运行程序的基本单位。

        2)每一个进程都有自己独立的一块内存空间、一组系统资源。

        3)每一个进程的内部数据和状态都是完全独立的。

当一个应用程序运行的时候会产生一个进程。

2.线程

线程是进程中执行运算的最小单位,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。

线程是进程内部的一个执行单元,是可完成一个独立任务的顺序控制流程,如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程。

多个线程交替占用CPU资源,而非真正的并行执行。

线程和进程既有联系又有区别:

        1)一个进程中至少要有一个线程。

        2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

        3)处理机分配给线程,即真正在处理机运行的是线程。

多线程好处

        1)充分利用CPU的资源

        2)简化编程模型

        3)带来良好的用户体验

二、编写线程类

1.主线程

        1) 每个程序至少自动拥有一个线程,成为主线程。Java程序中的public static void main()方法是主线程的入口。

        2)产生其他子线程的线程。

        3)必须最后完成执行,因为它执行各种关闭动作。

创建线程的步骤:

        1)定义一个线程,同时指明这个线程所有执行的代码,即期望完成的功能。

        2)创建线程对象。

        3)启动线程。

        4)终止线程。

2.在Java中创建线程的两种方式

        1)继承java.lang.Thread类

                编写简单,可直接操作线程

                适用于单继承

        2)实现java.lang.Runnable接口

                避免单继承局限性

                便于共享资源

3.继承Thread类创建线程

Thread类的常用方法

方法 说明
void run() 执行任务操作的方法

void start()

使该线程开始执行
void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)
String8 getName() 返回该线程的名称
int getPriority() 返回该线程的优先级
void setPriority(int newPriority) 更改该线程的优先级
Thread.Sxtate getState() 返回该线程的状态
boolean isAlive() 测试线程是否属于活动状态
void join() 使当前线程暂停执行,等待其他线程结束后再继续执行本线程
void interrupt() 中断线程
void yield() 暂停当前线程,允许其他具有相同优先级的线程获得运行机会 该线程处于就绪状态,不转为阻塞状态

首先定义一个类继承Thread类,重写run()方法

public class MyThread extends Thread {
    @Override
    public void run() {
        Thread mainThread = Thread.currentThread();
        System.out.println(mainThread.getName());//start调用时结果为thread-0

        for (int i = 0; i < 10; i++) {
            S
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值