java 多线程浅入浅出学习笔记

线程的概念

多进程:
在操作系统中能(同时)运行多个任务(程序)。
多线程:
在同一个应用程序中有多个顺序流(同时执行)。
线程的执行过程如下图
这里写图片描述
如图所示多线程是在cpu之中两个线程之间交互执行。

代码实现

创建线程的方法

方式1:

定义一个线程类,继承Thread并重写其中的方法run(),方法run(),称为线程体;

首先我们自定义一个线程类代码如下:

public class FirstThread extends Thread {
//  复写run()方法
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("FirstThread-->" + i);
        }
    }
}

我们我们需要设置该线程继承自Thread。
主函数:


public class FirstThreadDemo {
    public static void main(String[] args) {
        //生成线程对象
        FirstThread firstThread = new FirstThread();
        //启动线程
        firstThread.start();

        for(int i = 0;i<100;i++){
            System.out.println("main-->"+i);
        }
    }
}

特别提示启动线程是调用start()方法!!!
这里我们同线程对象一样设置一条打印语句运行看到结果如下:
这里写图片描述
两个线程是交互进行的。

方式2

这里写图片描述
1、我们首先自定一个类实现接口Runnable并复写其run()方法,代码如下:

public class RunnableImpl implements Runnable {
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Runnable-->" + i);
        }
    }
}

2、在主函数中我们首先将RunnableImpl类实例化,让后将其实例化的对象作为参数传递给Thread对象,这样我们就简单完成了线程的第二种实现方式,代码如下:


public class RunnableDemo {
    public static void main(String[] args) {
        // 生成RunnableImpl接口的实现类对象
        RunnableImpl impl = new RunnableImpl();

        // 生成Thread对象并且将RunnableImpl对象作为对象传递进去
        Thread thread = new Thread(impl);

        // 启动线程
        thread.start();
        for (int i = 0; i < 100; i++) {
            System.out.println("main-->" + i);
        }
    }
}

运行结果如下:
这里写图片描述

线程的简单控制方法:

这里写图片描述
通多查询API我们得到四个方法的具体描述:
static void sleep(long millis)
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。
这里写图片描述
我们可以在线程体中设置让该线程认为的休眠2000毫秒。
static void yield()
暂停当前正在执行的线程对象,并执行其他线程。
int getPriority()
返回线程的优先级。
我们可以通过该方法可以得到线程默认优先级为5
thread.setPriority(Thread.MAX_PRIORITY);返回10,表示最高优先级
thread.setPriority(Thread.MIN_PRIORITY);返回1,表示最高低先级
void setPriority(int newPriority)
更改线程的优先级。

synchronized()方法:
这里写图片描述
这里写图片描述
上面两端代码表示我们使用同一个线程体,生成两个线程。为了保证数据安全使用synchronized()方法的例子。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值