摘要: 1 什么是可重入锁 可重入锁是说一个线程在已经获取了该锁的情况下,还可以再次获取该锁。 主要的应用场景: 可重入锁指的是在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法, 则该线程可以直接执行调用的方法,而无需重新获得锁; Reentran 阅读全文
posted @ 2019-05-24 19:09 PhoenixTree(梧桐树) 阅读(443) 评论(0) 推荐(0)
摘要: 1 受内存限制 每个tcp连接是一个打开的socket文件,因此linux服务器的最大连接数受linux操作系统单个进程同时打开的最大文件数的限制。 这个限制本质上是对单个进程内存的限制。 查看进程最大文件数: ulimit -n 设置进行最大文件数: ulimit -n 100000 阅读全文
posted @ 2019-05-24 16:15 PhoenixTree(梧桐树) 阅读(4321) 评论(0) 推荐(0)
摘要: 1 java.util.concurrent.locks.LockSupport park:阻塞线程。 unpark:解除阻塞线程。 线程阻塞最基础的组件。 2 sun.misc.Unsafe 可以用来在任意内存位置读写数据。 阅读全文
posted @ 2019-05-24 12:26 PhoenixTree(梧桐树) 阅读(416) 评论(0) 推荐(0)
摘要: 1 submit的Runnable为什么通过Future获取任务的执行结果 submit的Runnable被封装成了FutureTask对象,并且返回。 Runnable执行的结果是在哪里交给FutureTask的? FutureTask重写了Runnable的run()方法,在这个run()方法中 阅读全文
posted @ 2019-05-24 10:27 PhoenixTree(梧桐树) 阅读(277) 评论(0) 推荐(0)
摘要: 1 为什么需要Callable和Future Runnable没有返回值,也不抛异常,这样主线程不能知道子线程的执行结果。 为了解决这个问题就有了Callable和Future。Callable提供的call方法返回一个结果,然后把这个结果交给Future,主线程通过Future就能够获取子线程执行 阅读全文
posted @ 2019-05-24 09:54 PhoenixTree(梧桐树) 阅读(219) 评论(0) 推荐(0)