Java中的线程1

进程:正在执行中的程序,其实是应用程序在内存中的那片空间。提供空间分配(如QQ)

线程:进程中的一个执行单元,负责进程中的程序执行(从哪到哪),一个进程中至少有一个线程。一个进程中多个执行单元——多线程(如qq 中的游戏/聊天等不同的功能)

  • Java虚拟机允许应用程序同时执行多个执行线程

程序启动多线程,有什么用?

可以实现多部分程序同时执行,专业术语----并发执行

多线程的运行原理:

1.     内存是在存储数据,硬盘是在计算

2.     内存是临时存储,关机后就没有了,其实在计算结束之后就没有了—临时计算区域-提高运行效率,内存是寻址。硬盘是持久化存储关机之后还有,硬盘是寻道。寻址比寻道更快。数据有硬盘中调到内存中由中央处理器(CPU)来处理

3.     CPU在程序运行时做什么?

1.     CPU在处理线程

2.     CPU在某一时刻不能同时处理多个程序

但是当我们在使用电脑是的确是同时打开了多个窗口,此时实际上CPU是在做线程的瞬间切换,这种速度是我们无法体会到的,CPU的瞬间切换导致我们以为是多个程序在同时进行

3.     多线程开多了,会导致运行效率降低。多切换导致效率并没有更快。程序/线程太多 CPU忙不过来,执行某个执行程序不会马上反应,但是他会在CPU的任务处理队列

里面(假死机。真死机就要关机清理内存重启了)

总结:多线程的合理使用可以合理的充分的利用CPU的资源,但如果线程过多会导致CPU处理不过来导致性能降低

 

主线程的运行方式:

 

<strong>package Thread;
class Demo{
    private String name;
    Demo(String name){
        this.name=name;
    }
    void show(){
        for(int i=1;i<=20;i++){
            System.out.println("name : "+name+"  "+i);
        }
    }
}
public class ThreadDemo1 {
    public static void main(String[] args){
        Demo D1 = new Demo("Liu");
        Demo D2 = new Demo("Li");
        D1.show();
        D2.show();
    }
}
/*
<span style="color:#ff0000">在之前的代码中,JVM启动之后,必然执行的路径(线程)是从main 方法开始的。一直执行到main方法结束。这个线程被称为主线程

当主线程爱这个程序执行时,如果遇到循环或者其他代码导致程序在指定位置停留的时间过长,无法执行到下面的程序
可以实现一个主线程负责执行其中一个循环,由其他的线程执行其他的代码
实现多部分同时执行
这就是多线程可以解决的问题</span>
 */</strong>

//接下来讨论如何创建线程
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值