启动一个线程用run还是start?线程的run()和start()有什么区别?并行和并发有什么区别?线程和进程的区别?

启动一个线程是调用start()方法,使线程变为就绪状态,以后可以被调度为运行状态

一个线程必须关联一些具体执行代码run()方法是该线程所关联的执行代码。

线程的run()和start()有什么区别?

run() 方法是线程的执行体,线程启动后会执行 run() 方法中的代码,当 run() 方法执行完毕后,线程便终止了。

start() 方法用于启动一个新线程,它会创建一个新的线程,并在新的线程中执行 run() 方法中的代码。在调用 start() 方法的时候,JVM 会为新的线程分配资源,并执行该线程中的 run() 方法。

总结: 调用 start 方法方可启动线程并使线程进入就绪状态,而 run 方法只是 thread 的一个普通方法调用,还是在当前线程里执行

并行和并发有什么区别?

并行是指同时执行多个任务,例如在多个处理器上同时处理多个任务。每个任务都是独立的,并且可以并行运行,从而提高系统的吞吐量。如果每个处理器都在独立执行自己的任务,那么就实现了并行。

举个例子,假设我们有一个计算机集群,其中有10个处理器。如果我们将一个程序分成10个独立的任务,并将每个任务分配给一个处理器,则每个处理器都可以独立执行自己的任务。这就是并行的一个例子。

并发是指在一段时间内同时处理多个任务,注意这里是“同时处理”而不是“同时执行”。这是因为在处理器中只有一个处理器内核,而同时执行多个任务是不可能的。因此,处理器通过轮流处理不同的任务,在不同任务之间切换,从而实现并发处理。

举个例子,假设我们有一个web服务器,收到了多个客户端的请求。这些请求需要在服务器上处理,但是由于服务器只有一个处理器内核,因此服务器必须轮流处理不同的请求,这样看起来就像是所有请求都同时在处理。这就是并发的一个例子。

总之, 并行处理是在多个处理器上同时执行多个任务,而并发处理是在一个处理器内核上轮流处理多个任务。

线程和进程的区别?

进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程,但一个进程一般有多个线程。

进程在运行过程中,需要拥有独立的内存单元,否则如果申请不到,就会挂起。而多个线程能共享内存资源,这样就能降低运行的门槛,从而效率更高。

线程是cpu调度和分派的基本单位,在实际开发过程中,一般是考虑多线程并发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值