1.主要思路:
(1) 服务端开启监听线程,等待客户端的连接。 每个socket连接放到独立线程中处理。
(2) 服务端和客户端使用约定的消息格式通信。对于比较复杂的消息(如向服务端传递一个实例),可以使用json封装传输。
(3) 每个连接的客户端,注册唯一的ClientID,在服务端以此来区分消息的来源。
2.代码构成
实现该样例包含两个cs的客户端程序。 分别为 服务...
分类:
编程语言 时间:
2015-05-17 21:55:20
阅读次数:
135
1、互斥体和信号量都是为了实现同步,但是二者解决的问题不一样,也就是说应用场景不一样。2、互斥体通过加锁,对于共享的资源,大家排队,依次去访问,一个一个来。也就是说,任何时刻只有一个线程访问,其他的线程等待。3、互斥体加锁存在的问题:无法控制线程的访问顺序。考虑两个线程A,B,访问顺序可能是A-B,...
分类:
其他好文 时间:
2015-05-17 20:09:05
阅读次数:
94
串口SerialPort类使用Write之后进行Read之后可能存在数据延后发送或者数据合并发送,笔者使用线程等待锁定串口的工作状态的形式进行获取准确的数据。这样能够一定的解决数据失真的情况,但是高密集的命令下可能产生数据命令的丢失。
今天上午ANR又遇到一种新的情况
Android加载library没有加载成功 造成的 application not response 应用无响应异常
总结 :目前遇到过的ANR异常原因:
1->主线程循环耗时>5s 了,
2->广播接收函数处理耗时 >10s了
3->数据库读写耗时
4->死锁
5->子线程耗时操作挂掉了,主线程等待资源,
6->Android加载硬件资...
分类:
其他好文 时间:
2015-04-29 13:37:59
阅读次数:
115
核心内容:1、必要的空间引入。2、在当前线程上新建另一线程。3、运行线程。4、挂起线程。5、线程恢复。6、线程等待。7、线程同步。8、线程异步。9、结束线程。具体实现:1、(必须)引入System.Threading空间。2、C#中几乎所的都被封装成类,Thread也是如此,采取类的实例化(定义方式...
分类:
编程语言 时间:
2015-04-26 22:24:21
阅读次数:
183
线程的控制:Java中的线程支持提供了一些便捷的工具方法,通过这些便捷的工作方法可以更好的控制线程的执行。一、join线程:Thread提供了让一个线程等待另一个线程完成的方法——join()方法。当某个程序执行流中调用其他线程的join方法时,调用线程将被阻塞,直到被join方法加入的join线程...
分类:
编程语言 时间:
2015-04-21 20:16:51
阅读次数:
135
JVM的内存空间:1. 寄存器 (Registers):最快的保存区域,位于处理器内部,由编译器分配。主要作用是记录当前线程所执行的字节码的行号。字节码解释器工作时就是通过改变当前线程的程序计数器选取下一条字节码指令来工作。任何分支、循环、方法调用、判断、异常处理、线程等待以及恢复线程、递归等都是通...
分类:
编程语言 时间:
2015-04-20 18:16:15
阅读次数:
204
day24:多线程 【等待唤醒机制】 等待唤醒机制[Object] wait():让线程处于等待状态 notify():唤醒等待线程 实现或者重写父类方法,出现父类中没有的异常时,子类只能try catch。 wait():是Object类的方法,可以不用传参;释放锁对象 sleep():是Thre...
分类:
编程语言 时间:
2015-04-15 23:06:03
阅读次数:
187
1. 线程的等待退出 1.1. 等待线程退出 线程从入口点函数自然返回,或者主动调用pthread_exit()函数,都可以让线程正常终止 线程从入口点函数自然返回时,函数返回值可以被其它线程用pthread_join函数获取 pthread_join原型为: #include int pthrea...
分类:
编程语言 时间:
2015-04-11 17:42:59
阅读次数:
225
三个方法
wait()
notify()
notifyAll()
三个方法都使用在同步中,因为要对持有锁(又叫监控)的线程操作。
所以要使用在同步中,因为只有同步才具有锁。
为什么这些操作线程的方法均出现在Object类中?
因为这些方法在操作同步中的线程时候,都必须要标识所操作线程识有锁。只有同一个锁上的被等待的线程,可以被同一个锁上的notify唤醒,不可以对不同锁中的线程进行唤醒。...
分类:
编程语言 时间:
2015-04-10 09:35:47
阅读次数:
171