多线程
fhxyryxc
这个作者很懒,什么都没留下…
展开
-
自定义线程池
my.threads.pool.corePoolSize=20my.threads.pool.maxPoolSize=40my.threads.pool.keepAliveSeconds=300my.threads.pool.queueCapacity=5000/** * 如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component, * 那么在IOC容器中是获取不到properties 配置文件转化的bean * @EnableConfigura原创 2020-12-18 09:50:37 · 63 阅读 · 0 评论 -
线程run()方法
创建方式public static class MyThread extends Thread { @Override public void run() { System.out.println("自己实现的run-1"); }}MyThread myThread = new MyThread();myThread.start();new Thread(() -> System.out.println("自己实现的run-2")).start();转载 2020-06-03 21:17:50 · 396 阅读 · 0 评论 -
Java 最多支持多少个线程
(系统剩余内存 - 最大堆容量Xmx - 最大方法区容量MaxPermSize)/ 最大栈空间Xss4G的服务器单个进程可以开大概5000个线程。操作系统分配给每个进程的内存大小是有限制的,比如32位的Windows是2G。因此操作系统对一个进程下的线程数量是有限制的,不能无限的增多。经验值:3000-5000左右线程多了,就会有线程切换,带来性能开销。jvm堆越大,系统创建的线程数量越小。当-Xss的值越小,可生成线程数量越多。//每个线程栈的大小-Xss=128K线程池大小CPU 密原创 2020-06-02 23:45:51 · 2871 阅读 · 0 评论 -
ReentrantReadWriteLock
同步的范围越小越好。同步块比同步整个方法更提升代码的效率。为什么 wait/notify/notifyAll 这些方法不在 thread 类里面?JAVA 提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。由于 wait, notify 和 notifyAll 都是锁级别的操作,所以把他们定义Object 类中,因为锁属于对象。为什么 wait 和 notify 方法要在...转载 2019-11-19 18:28:22 · 71 阅读 · 0 评论 -
多线程面试题-1
如何在两个线程之间共享数据如果每个线程执行的代码执行的代码相同,那么可以使用同一个runnable对象,这个runnable里面的数据共享。如果每个线程执行的代码不同,这时候需要用不同的Runnable对象。锁&线程&线程池&死锁、活锁、饥饿、无锁volatile 会禁止语义重排序CyclicBarrier 可 重 用 , CountDownLatch 不...转载 2019-11-19 17:32:29 · 91 阅读 · 0 评论