这两天在看《OC高级编程-多线程编程和内存管理》日本人写的那本,该书对arc,block和gcd有了更深层次的解读,非常不错。现在总结一下gcd相关的知识。有关arc和block的参考arc 参考block
网上很多博客都对gcd有过讲解,很多是对gcd的全局队列,主线程队列,创建队列等等,做了单方面的描述,不是很全面系统。下面我们将学习一下系统得gcd。本文主要分为下面几个要点,前几个好点比较好理解,最后可能理解起来有些费劲!
● 什么是gcd,iOS为什么要用多线程
● 创建线程,序列线程和...
分类:
移动开发 时间:
2014-08-27 13:03:47
阅读次数:
376
用Python写的一个多线程TCP通信实例,实现了JSON数据的传输。
闲言少述,直接上代码
?
一、客户端
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
import socket
import threading
import SocketServer
import json
def client(ip, port,...
分类:
编程语言 时间:
2014-08-27 11:01:37
阅读次数:
389
具体业务,使用面向对象设计思想分析和代码实现过程...
分类:
编程语言 时间:
2014-08-27 09:30:07
阅读次数:
270
1. 多线程不会提高代码的执行效率 如果cpu是单核的,同一时间只能做一件事,就算写多线程的话,同一时间也不能做两件事,且进程切换,或者数据在多线程中传递,也会浪费时间
分类:
编程语言 时间:
2014-08-27 07:05:17
阅读次数:
230
需求 客户端将需要解决的task发送给服务器,服务器调用线程来解决客户端发送的task,解决完由线程负责将其发送回客户端。(用管道实现通信) 思路 1. server维护两个列表。一是客户端列表。二是任务列表。分别如下: /* 客户端列表 */ typedef struct tag_fds{ int...
分类:
编程语言 时间:
2014-08-27 01:38:56
阅读次数:
359
思路 生产者和消费者(互斥与同步)。资源用队列模拟(要上锁,一个时间只能有一个线程操作队列)。 m个生产者。拿到锁,且产品不满,才能生产。当产品满,则等待,等待消费者唤醒。当产品由空到不空,通知消费者。n个消费者。拿到锁,且有产品,才能消费。当产品空,则等待,等待生产者唤醒。当产品由满到不满,通知生...
分类:
编程语言 时间:
2014-08-27 01:31:26
阅读次数:
380
查看glib版本: rpm -q glib卸载glib: rpm -e --nodeps glibrpm -e --nodeps glib-devel额。。。我安装完后还是查找不到,不知道为啥使用gmime-2.6,解析邮件,安装也不简单,需要多线程支持,总算是按上了,记录一下子安装libffi./...
分类:
其他好文 时间:
2014-08-27 00:19:16
阅读次数:
476
这几天晚上群里一朋友有偿叫我把他的程序弄稳定,因为是现场管理项目,需要做到无人职守,所以即使是客户端,也不能经常down机,因为之前对他的程序有过一个晚上的实地查看,基本流程已经有个大概的了解,我就接下来了。刚开始的时候, 程序运行不到一个上午,内存暴涨,有时几个小时就挂了,这个那天晚上发现了,找了...
分类:
编程语言 时间:
2014-08-27 00:16:16
阅读次数:
307
项目中遇到一个bug,因为接入了几家越狱平台:91、同步推、PP助手,在设备上安装了三个应用,启用其中任意一个,另外二个启动后无法创建发送socket消息,从而导致游戏直接死在登录那里,再次点击登录时线程才会被唤醒(无法发送的原因定位到,是因为在调用sem_post方法后无法将线程唤醒)。之后我尝试...
分类:
编程语言 时间:
2014-08-27 00:09:56
阅读次数:
402
引言 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待条件变量的条件成立而挂起(此时不再占用cpu);另一个线程使条件成立(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 函数原型 1. 定义条件变量 #include /* 定义两个...
分类:
编程语言 时间:
2014-08-26 22:47:16
阅读次数:
343