【C#高级编程】笔记之核心C#

  Main()方法  每一个C#可执行文件(如控制台程序、Windows程序和Windows服务)都必须有一个入口点——Main()方法(注意M大写)。 这个方法必须是类或静态方法,并且返回类型必须是int 或 void。不过给这个方法定义什么访问级别并不重要,一般定
1次阅读

Windows Shell编程之如何编写为文件对象弹出信息框的Shell扩展

有关COM编程资料转载:http://www.cnblogs.com/lzjsky/archive/2010/11/22/1884702.html活动桌面引入一项新特性, 当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述例如对TXT格式文件:系统默认的:     &nbs
2次阅读

第9章 线程编程(8)_死锁

5.6 死锁(1)死锁:两个线程试图同时占用两个资源,并按不同的次序锁定相应的共享资源。(2)解决方案:  ①方案1:按相同的次序锁定相应的共享资源  ②方案2:使用pthread_mutex_trylock(),它是pthread_mutex_lock()函数的非阻塞版。【编程实验】死锁//dea
4次阅读

qt study 元对象,属性和反射编程

所谓反射,就是指对象成员的自我检查,使用反射编程(reflective programming),就可以编写出通用的操作,可以对具有不同结构的类进行操作。QMetaObject 元对象模式,描述一个对象结构的对象。DestType* qobject_cast <DestType*>(QO
3次阅读

第9章 线程编程(7)_线程同步4:信号量

5.5 线程信号量5.5.1 信号量函数简介(1)信号量(semaphore)从本质上是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资源的访问。(2)信号量可以实现线程的同步和互斥(3)通过sem_post()和sem_wait()函数对信号量进行加减操作,从而解决线程的同步和互斥。(
6次阅读

第9章 线程编程(6)_线程同步3:条件变量

5.4 条件变量5.4.1 条件变量简介(1)互斥锁的缺点是它只有两种状态:锁定和非锁定。(2)条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足。(3)条件变量内部是一个等待队列,放置等待的线程,线程在条件变量上等待和通知。互斥锁用于pthread_cond_wait内部对“
4次阅读

第9章 线程编程(5)_线程同步2:读写锁

5.3 读写锁(1)读写锁简介  ①线程使用互斥锁缺乏读并发性  ②当读操作较多,写操作较少时,可使用读写锁提高线程并发性  ③读写锁数据类型:pthread_rwlock_t(2)读写锁的操作  ①创建和释放读写锁头文件#include <pthread.h>函数int pthread
4次阅读

第9章 线程编程(4)_线程同步1:互斥锁

5. 线程的互斥和同步5.1 同步和互斥的概念(1)线程同步:是一个宏观概念,在微观上包含线程的相互排斥和线程的先后执行的约束问题。解决同步方式一般采用条件变量和信号量。(2)线程互斥:线程执行的相互排斥(注意,它不关心线程间执行的先后顺序!)。解决互斥一般使用互斥锁、读写锁和信号量。【编程实验】银
9次阅读

第9章 线程编程(3)_线程清理和控制函数

3. 线程清理和控制函数(1)线程清理函数,线程在退出时需要调用的函数,这与进程在退出时要用atexit注册的函数类似(2)线程可以创建多个线理清理处理程序(thread cleanup handler)。这些处理程序记录在栈中,也就是执行顺序与它们注册的顺序相反。头文件#include <p
7次阅读

第9章 线程编程(2)_线程创建和终止

2. 线程的创建和终止(1)创建函数:pthread_create头文件#include <pthread.h>函数int pthread_create(pthread_t* tidp, const pthread_attr_t* attr, void*(*start_rtn)(void
7次阅读