多线程总结(一)

前言

吐槽csdn,刚才写好了,结果保存的时候卡死了!好气哦!项目上个星期在等投标的结果,所以没有什么事情,就抓紧时间把《Java多线程核心技术》敲了一遍,今天就来总结总结里边的知识点

概念

进程:cpu中运行的exe,一个进程包含很多线程
线程:进程中独立运行的子任务
举例:我们运行一个QQ程序,其实就是一个QQ的进程,我们在聊天的同事还可以干许多其他的事情,比如传个资料,逛逛qq空间等等,这些子任务就是一个个的线程

多线程的优点:最大限度利用CPU的空闲时间来处理其他任务
举个例子:qq传个大电影,要10分钟左右,但是在等待的时候,也不会影响你的其他操作。

但需要明确的一点是cpu(单核)并是同时运行着多个线程,而是在多个线程中切换,因为速度很快,让用户感觉是在同时进行着多个任务。系统的运行效率会大大得到提升,使用多线程也就是使用异步

创建线程

一.继承Thread类

public class ThreadDemo extends Thread {
    @Override
    public void run(){
        super.run();
        System.out.println("我是ThreadDemo子线程!");
    }
}
    public static void main(String[] args) {
        ThreadDemo t=new ThreadDemo();
        t.start();
        System.out.println("结束了");
    }

运行结果:
结束了
线程开始:我是ThreadDemo子线程!

  1. 可以发现线程的执行了调用顺序没有关系
  2. 使用start()方法而不是run()方法来调用线程,start()方法会通知“线程规划器” 此线程已经准备就绪,等待调用线程对象的run()方法。这个过程是让系统安排一个时间来调用,如果使用对象.run()方法就是main方法来调用,效果是同步的。也就是说必须要等到run方法执行完毕才可以执行接下来的命令
  3. 继承thread方法有一定的局限性,因为java不支持多继承

二、实现Runnable接口


public class RunnableThread implements Runnable {
    @Override
    public void run() {
        System.out.println("我是RunableThread线程");
    }
}
    public static void main(String[] args) {
        RunnableThread r=new RunnableThread();
        Thread t=new Thread(r,"runnable线程");
        t.start();
        System.out.println("结束了");
    }
  1. Thread类也是继承自Runnable接口的
  2. 使用Thread类的Thread(Runnable targer,String name);构造函数,实现多线程的启动
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值