`
yxpjx01
  • 浏览: 2968 次
社区版块
存档分类
最新评论
文章列表
1、linux 活跃连接数最大数与系统的内存及系统的句柄相关。一个连接系统就打开一个句柄,所以,若达到系统设置句柄数,则就不能再接收连接请求了。 2、非阻塞方法 epoll,select、pull 3、内存管理,一次分配大点的内存,多次分配内存,对系统性能有较大的影响 4、少用系统调用 5、少做内存拷贝,如读一个文件,则需文件用内核态拷贝至用户态,发送一个文件:则是从用户态拷贝到内核态的过程

java-线程(lock)

    博客分类:
  • java
1、synchronized 同步方法及代码块,锁JVM会自动释放,lock,则需要手工管理 try{lock.lock()}finally{lock.unlock()} 2、lock 提供了读锁、写锁,以提高性能.为了保证数据的一致性和完整性,需要读和写是互斥的,写和写是互斥的,但是读和读是不需要互斥的,这样读和读不互斥性能更高些 ReentrantReadWriteLock     private int data;// 共享数据      private ReadWriteLock rwl = new ReentrantReadWriteLock();         publi ...
要取到一个线程的返回值,则线程需要实现callable接口 返回值用future或futureTask来取得 public class FutureTaskTest {     public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {          Callable<Integer> callable = new Callable<Integer>() {              public Int ...

java线程-线程池

    博客分类:
  • java
1.Executors.newFixedThreadPool 固定线程数 2、Executors.newCachedThreadPool 按任务数创建线程数 3、newSingleThreadExecutor  单线程 4、newScheduledThreadPool 按固定时间或周期性执行一个任务 publicstaticvoid main(String[] args) {         ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);         exec.scheduleAtFixedRate ...
独立写了一个生产消费者的模式,加强理解多线程编程及线程间的同步及信息交换。 要点: 1、在启动线程时,先需启动生产者。 2、生产者生产满了后,就不能再生产,进入等待状态,直到有消费者进行消费。 3、消费者进行消费时,若没有,则不能进行消费,进入等待状态。直到生产者生产了。 public class TestProduct { public static void main(String[] args){ final Product pro = new Product(); ExecutorService service = Executors.newCachedThreadPool( ...
synchronized加在方法 上,锁定这个类的对象,加在静态方法上,锁定的是这个类。 volatile:可以对共享变量的值的改变直接反应在主内存中。 一个共享变量的操作步骤如下: 1、将主内存中的变量(java堆)值复制到工作内存中(操作数栈) 2、对共享变量进行操作 3、操作完成后,将共享变量存储到工作内存中 4、将共享变量存回到主内存中。
面试回来还是有些挫败感,以往只是知道如何使用,对于一些技术深层次的原理知道的很少,也没有持续去砖研下去。 踏踏实实打些技术的基础,弄清楚低层的原理。 1、IO、线程、SOCKET 2、JVM内存模型 3、JAVA框架类 4、源代码读
Global site tag (gtag.js) - Google Analytics