- 博客(8)
- 收藏
- 关注
原创 synchronized 同步互斥
网上看了一些关于synchronied的讨论,自己测试了一遍:class TT implements Runnable { private int b = 100; public void m1() { synchronized (this) { try { Thread.sleep(3000); ...
2018-05-18 14:17:36 311
原创 收集了一些关于tcp效率和负载的资料
一个电脑能开多少个线程?一个进程可以开启的线程受可用内存限制,如果是32位的机器,那么默认一个进程有2G的可用内存,而每个线程默认分析1M的栈空间,所以这种情况下理论最线程数在2000多个。一个解决办法是创建线程时减少线程栈的大小或是使用64位的系统。64位系统应该可以忽略这个问题了。当然受cpu及磁盘速度及物理内存的限制。不用到达上限值,你的机器应该已经是慢如牛车了。ClientAccepted...
2018-05-11 16:21:35 274
转载 关于Vector到底是不是 线程安全的 问题
线程安全,在java的多并发编程中是重要概念,意思是,多个线程同时操作一个对象,在各种不同情况下,都不会造成不同的后果。一个经典问题,Vector到底是不是线程安全的? 很多人都会回答,是,vector是线程安全的。诚然,不止是很多IT教材上是这么写的,就连JDK的作者写的注释也是这么说的。如下图(图为 JDK中Vector的源代码):注释中,红框标记的部分写着:如果你不需要线程安全的实现类,那就...
2018-05-11 15:49:04 10092 1
转载 Vector 真的线程安全吗?
Vector里一些写删操作的方法都是用synchronized实现同步,这样vecotor在使用时真的不需要考虑线程安全问题吗?答案是否! 下面看一个例子: Vector vector = new Vector();public void put(String element){if (!vector.contains(element)) vector.add(element); }......
2018-05-11 15:42:27 4833 1
转载 集合框架List的三个子类的特点
List的三个子类的特点Vector和ArrayList的区别Vector是线程安全的,效率低ArrayList是线程不安全的,效率高共同点:都是数组实现的ArrayList和LinkedList的区别ArrayList底层是数组结构,查询和修改快LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢共同点:都是线程不安全的List有三个子类,用谁呢?查询多用ArrayList增删多...
2018-05-11 15:40:40 367
转载 关于Java的TCP编程中需要注意的一些坑
TCP连接就是传说中的长连接,有所谓的3此握手来保证消息一定可达,在java中,TCP传输的方式属于流数据传输,而流数据传输的特点就是数据到达的顺序是固定的,比如说数据A写入到TCP连接中,数据B接着再写入到TCP连接中,数据C再写入TCP连接,那么在另一端,如果数据不丢失,那么A到达后,B到达,C再到达;当B丢失了,那么就是A到达,B丢失,C这时候也不会到达,因为TCP连接是可靠连接,一定会确保...
2018-05-11 14:46:39 1300
转载 Android实现推送方式解决方案
本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也...
2018-05-07 14:59:54 136
转载 互联网推送服务原理:长连接+心跳机制(MQTT协议)
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢: 在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都需要心跳...
2018-05-07 14:58:28 650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人