浅谈线程
大家好,这是本小白的第一篇博文——关于线程的一些知识。现在还在学习当中,所述可能会有些错误。也希望大家改正。
何为线程
在学习线程的过程中,老师提出了进程和线程的概念。
那么何为进程,何为线程呢?
举个例子,比较火爆的王者荣耀大家都玩过。那么我方队伍可以理解为一个进程。这个进程的任务是把对方水晶给推倒。而我方队伍里的5名英雄可以理解成5个线程。而我们程序员就相当于玩家,通过编写代码操作线程,从而达到推倒对方水晶的目的。
那么肯定就有小伙伴会问,学这个有什么用呢?我在main方法里老老实实的写代码不香嘛?其实我们在main方法里写的所有代码,就是在main线程这个主线程上。并且在以后的开发环境中,不可能只有一个用户使用你写的代码。假设你创建了一个对象,但此时有5个用户过来抢,你该怎么分配呢?
也是因为这个原因,我们引入了同步和异步,并发与并行的概念。
同步和异步
在学习线程的过程中,老师提出了进程和线程的概念。
那么何为进程,何为线程呢?
举个例子,比较火爆的王者荣耀大家都玩过。那么我方队伍可以理解为一个进程。这个进程的任务是把对方水晶给推倒。而我方队伍里的5名英雄可以理解成5个线程。而我们程序员就相当于玩家,通过编写代码操作线程,从而达到推倒对方水晶的目的。
那么肯定就有小伙伴会问,学这个有什么用呢?我在main方法里老老实实的写代码不香嘛?其实我们在main方法里写的所有代码,就是在main线程这个主线程上。并且在以后的开发环境中,不可能只有一个用户使用你写的代码。假设你创建了一个对象,但此时有5个用户过来抢,你该怎么分配呢?
也是因为这个原因,我们引入了同步和异步,并发与并行的概念。
并行和并发
并行:指两个或多个事件在同一时刻发生。可以理解为你打有王者荣耀的时候,貂蝉跳进去放大招,而此时此刻,你所有的队友心有灵犀,心领神会的一起放大招。这叫同一时刻。
并发:指两个或多个事件在同一时间段内发生。 这个同一时间段的时间单位可以是秒,分.etc。