![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Multi-thread
yang1vip
水瓶座+AB型+INTJ
我来自中国最寒冷的地方,那里四季分明,每个人的幸福都写在脸上
展开
-
浅谈Java中的同步的方法和原理
Java的内存模型中Thread会附有自己的堆栈,寄存器,必要时需要和主存即heap之间同步。 可以使用Synchornized关键字和Concurrent包中的Lock可以保证线程互斥和可见性。 互斥性体现在类锁或者对象锁上,每个对象自身都包含一个监视器,该监视器是一个每次只能被一个线程所获取进入的临界区,可以通过wait和notify来退出和准入临界区。可以看出这是一个生产者-消费者的...2010-07-09 19:30:07 · 157 阅读 · 0 评论 -
多线程的知识
[b]多线程的优点:[/b] 1 多核利用 2 为单个任务建模方便 3 异步处理不同事件,不必盲等 4 现代的UI也需要它 [b]风险:[/b] 1 同步变量易错误 2 因资源限制导致线程活跃性问题 3 因2导致的性能问题 [b]用途:[/b] 框架,UI,Backend [b]线程安全的本质是什么:[/b] 并非是线程和锁,这些只是基础结构,本质是如何控制共享变量访问的状...2010-05-25 07:57:13 · 135 阅读 · 0 评论 -
NIO Web服务器示例
1 根据cpu core数量确定worker数量 2 selector服务accept和read 3 accept selector作为生产者把获得的请求放入队列 4 当获得read信号时,selector建立工作任务线程worker,并提交给系统线程池 5 worker线程排队后在线程池中执行,把协议头读入缓冲区,然后解析,处理,响应,关闭连接 [code="java"] impor...2010-06-25 18:58:27 · 164 阅读 · 0 评论 -
关于ThreadLocal的内存泄露
ThreadLocal是一种confinement,confinement和local及immutable都是线程安全的(如果JVM可信的话)。因为对每个线程和value之间存在hash表,而线程数量未知,从表象来看ThreadLocal会存在内存泄露,读了代码,发现实际上也可能会内存泄露。 事实上每个Thread实例都具备一个ThreadLocal的map,以ThreadLocal Ins...2010-07-02 18:19:49 · 82 阅读 · 0 评论