关于线程的问题

2019-03-25 13:38|来源: 网路

   在学习多线程的时候,有一个问题总会困扰着我--
   关于sleep方法.当调用此方法时当前线程会在此sleep时间段内让出
执行权,自己处于阻塞状态.
   问题是当多个线程并发执行时,都会调用该方法,都会休眠相同的时间,感觉就是
每个线程只是停留了一下,并不能体会到sleep方法的作用?
   不知道大家是怎么理解这个问题的,求解!

相关问答

更多
  • 一个线程是一个程序内部的顺序控制流。 线程就是轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 多线程就是在同一应用程序中,有多个顺序流同时执行。 通俗点说,就是比如你现在手里边拿着可乐喝着一边还在浏览网页,如果用线程的话你就可以同时做这两件事(虽然不是什么好习惯),如果是单线程就是你必须先完成一件事再完成另一件事,也就是多个事件排队,按顺序一个个的做。 本质上来说,系统是将交换这些作业进或出CPU,这样(从外部看来)它们好象是同时运行的。 多线程主要 ...
  • 可以通过以下原则解决: 1、设置线程池的最大线程数 2、设置线程池的并发处理线程数量 3、设置线程池最大的队列线程数 4、做好线程池的线程清理工作 做好这几点,理论上没问题了,具体还得看编程者代码的质量。 PS:服务器不可能为每一个请求都创建线程,得考虑到最大负载,当达到临界值的时候,服务器返回繁忙状态,拒绝服务即可,当然这是简单的处理办法。
  • 一、为什么要研究和使用线程 一般来说,计算机正在执行的程序称作进程(process),进程有不同的地址空间并且是在同一系统上运行的不同程序,如WORD和Excel,进程间的通讯是很费时而且有限的。上下文切换、改变运行的进程也是非常复杂的。进程间通讯复杂,可能需要管道、消息队列、共享内存(sharedmemory)或信号处理来保证进程间的通讯。尽管许多程序都在运行,但一次只能与一个程序打交道。 线程(thread)是指进程中单一顺序的控制流。又称为轻量级进程。线程则共享相同的地址空间并共同构成一个大的进程。线 ...
  • java多线程理解[2022-02-28]

    java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。 一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法: Thread t = new Thread(); t.start(); start()方法是一个nat ...
  • 线程池的存在意义在于虚拟机可以统一管理和调度线程,这样可以提高性能,避免不必要的损耗。 当然了,如果你要控制池子里每一个线程,那就不能用线程池,而是你自己发明一个新的线程管理工具。
  • java线程锁求解[2022-05-10]

    执行什么方法的时候,直接对需要操作的对象加上synchronized锁住就好啦。
  • 我觉得我已经可以结贴啦: 1、只通过线程池启动的线程,才会受到线程池管制。 2、spring 线程池有自己的实现,看spring的源码,他会有一定的步骤,首先判断线程池中是否有闲的线程,如果没有,将任务加到队列中,而队列是自己 配置的,最后如果都没有,则挂掉。 3、线程new Thread() 只是创建了一个任务,并没有start() 或者 加到线程池中,相比只是创建一个java对象,回收机制会回收。
  • PHP多线程的问题[2023-02-06]

    在*nix平台下可以用PHP做多线程程序, 比如做个守护进程, 提供某种服务, 比如说提供域名注册, 或者提供某个经纬度的偏移校正量,想提供什么服务都可以. 如果是非常繁重的文件搬迁的话还是用C写较好,一般性的服务用PHP好处是代码相对C简单得多,可以把时间放在设计方面 =============== 在linux环境可以用PHP写多线程程序 查一下网上的教程,使用这个函数的 pcntl_fork() 这个需要平台特性,使用fork() windows不行
  • public class MapTest { public static void main(String[] args) { final Hashtable map = new Hashtable (); map.put(1, "1"); new Thread(new Runnable() { @Override public void run() { Enumeration iterator; for (int i = 0; i < 5; i++) { iterator = map.elements() ...
  • java线程池问题[2022-09-27]

    线程池中即使没有线程可调用了,也不会程序终止啊。线程池里定义多少线程,是看具体问题具体分析的,不一定多了就好,但是少一点也不一定是个坏事,但是总要有响应用户“关闭”功能吧,总不能让客户等待n久都关不了吧。