Windows Via C/C++: CreateThreadº¯Êý
CreateThreadº¯Êý
Ç°Ãæ½²¹ý£¬½ø³ÌµÄÖ÷Ï̻߳áÔÚCreateProcessµ÷ÓÃʱ×Ô¶¯´´½¨¡£¼ÙÈçÄãÒªÊÖ¹¤´´½¨Ị̈߳¬Äã¿ÉÒÔµ÷ÓÃCreateThreadº¯Êý£º
HANDLE CreateThread(
PSECURITY_ATTRIBUTES psa,
DWORD cbStackSize,
PTHREAD_START_ROUTINE pfnStartAddr,
PVOID pvParam,
DWORD dwCreateFlags,
PDWORD pdwThreadID);
ϵͳÔÚµ÷ÓÃCreateThreadʱ´´½¨Ò»¸öÏß³ÌÄں˶ÔÏó£¬Ïß³ÌÄں˶ÔÏó²¢·ÇÏ̱߳¾Éí£¬ËüÊDzÙ×÷ϵͳÓÃÀ´¹ÜÀíÏ̵߳ÄÊý¾Ý½á¹¹£¬ÆäÖаüº¬Ï̵߳Äͳ¼ÆÐÅÏ¢¡£ÕâÓë½ø³ÌºÍ½ø³ÌÄں˶ÔÏóµÄ¹ØÏµÊÇÀàËÆµÄ¡£
ϵͳ´Ó½ø³ÌµÄµØÖ·¿Õ¼äÖÐΪÏß³ÌÕ»·ÖÅä¿Õ¼ä¡£ÐµÄÏ̺߳ʹ´½¨ËüµÄÏß³ÌÔËÐÐÔÚͬÑùµÄ½ø³ÌÉÏÏÂÎÄÖУ¬Òò´ËÐÂÏ߳̿ÉÒÔ·ÃÎʽø³ÌµÄ¾ä±ú±í¡¢µØÖ·¿Õ¼äÒÔ¼°ÆäËü´¦ÔÚͬһ½ø³ÌÉÏÏÂÎÄÖеÄËùÓÐÏ̵߳ĶÑÕ»£¬ÕâʹµÃͬһ½ø³ÌÄڵĶà¸öÏß³ÌÏ໥ͨÐűäµÃ¼«Îª¼òµ¥¡£
×¢Òâ CreateThreadº¯ÊýÊÇÓÃÀ´´´½¨Ï̵߳ÄWindows APIº¯Êý¡£¼ÙÈçÄãʹÓÃC/C++´úÂë´´½¨ÐÂỊ̈߳¬ÄãÓ¦¸Ã±ÜÃâʹÓÃCreateThread£¬¶øÓÃ΢ÈíC++ÔËÐÐʱ¿âº¯Êý_beginthreadex´úÌæ¡£±¾ÕÂÉÔºó»á½²µ½_beginthreadexº¯Êý²¢½âÊÍÓÃËü´úÌæCreateThreadµÄÔÒò¡£
ÏÂÃæÎÒÃÇÀ´¿´¿´CreateThreadµÄ²ÎÊý¡£
psa
psaÊÇSECURITY_ATTRIBUTES½á¹¹µÄÖ¸Õ룬ÏòÆä´«µÝNULL±íʾ´´½¨µÄÏß³ÌÄں˶ÔÏóʹÓÃĬÈϵݲȫÊôÐÔ¡£Èç¹ûÏëÈÃÐÂÏß³ÌÄں˶ÔÏóµÄ¾ä±úÄܱ»×Ó½ø³Ì¼Ì³Ð£¬ÄãÓ¦¸ÃΪÆä´«µÝÒ»¸öSECURITY_ATTRIBUTES½á¹¹µÄÖ¸Õ룬²¢½«bInheritHandleÓòÉèÖÃΪTRUE£¬µÚ3Õ¶ԴËÓÐÏêϸµÄ˵Ã÷¡£
cbStackSize
[¹ØÓÚcbStackSizeµÄ½âÊͲο¼ÁËMSDN£¬ÓëÔÎÄÓгöÈ룬²ÎÔÄhttp://msdn.microsoft.com/en-us/library/ms686774%28VS.85%29.aspx
]
ÿ¸öÏ̵߳ĶÑÕ»ÓÉÔ¤Áô£¨reverse£©¿Õ¼äºÍϵͳ×î³õΪÆäÌá½»£¨commiteted£©µÄÒ³Ãæ¿Õ¼ä×é³É¡£Ô¤Áô¿Õ¼äµÄ´óС±íʾϵͳÔÚ½ø³ÌµÄÐéÄâµØÖ·¿Õ¼äÖÐΪÏß³ÌÕ»·ÖÅäµÄ×Ü´óС£¬Òò´ËÔ¤Áô¿Õ¼äµÄ´óСÊܽø³ÌµØÖ·¿Õ¼ä´óСµÄÖÆÔ¼¡£³õʼÌá½»µÄÒ³Ãæ¿Õ¼äʹÓÃʱ²Å»áÔØÈëÄڴ棬Èç¹ûÏß³ÌÔËÐÐʱËùÐèµÄ¿Õ¼ä³¬¹ý³õʼÌá½»µÄÒ³Ãæ¿Õ¼ä´óС£¬ÏµÍ³»á´ÓÏ̱߳£Áô¿Õ¼äÖÐΪÆä¼ÌÐøÌá½»Ò³ÃæÎļþ£¬Ö±µ½Ï̵߳ÄÔ¤Áô¿Õ¼ä½öÊ£ÏÂÒ»Ò³´óС£¬ÕâÒ»Ò³×÷Ϊ“ÉÚ±ø”ÓÃÀ´·ÀÖ¹Ïß³ÌÕ»µÄÒç³ö£¬²»ÄÜÔÚ³ÌÐòÖÐʹÓá£
µ±Ï̺߳¯ÊýÍ˳ö»òµ÷ÓÃExitProcessʱ£¬ÏàÓ¦µÄÏß³ÌÕ»»á±»Ïú»Ù£¬Èç¹ûÏß³ÌÊÇÓÉÆäËüÏß³ÌÖÕÖ¹µÄ£¬ÆäÏß³ÌÕ»»áÒ»Ö±´æÔÚÖ±ÖÁ½ø³ÌÖÕÖ¹¡£
Ïß³ÌÔ¤Áô¿Õ¼äºÍ³õʼÌá½»Ò³ÃæµÄ´óСÊÇÔÚ¿ÉÖ´ÐÐÎļþµÄÍ·²¿¶¨ÒåµÄ¡£Ä¬ÈϵÄÔ¤Áô¿Õ¼ä´óСÊÇ1MB£¬³õʼÌá½»Ò³Ãæ´óСΪ8K¡£ÊÖ¶¯
Ïà¹ØÎĵµ£º
Ò»:ǰÑÔ
I2cÊÇphilipsÌá³öµÄÍâÉè×ÜÏß.I2CÖ»ÓÐÁ½ÌõÏß,Ò»Ìõ´®ÐÐÊý¾ÝÏß:SDA,Ò»ÌõÊÇʱÖÓÏßSCL.ÕýÒòΪÕâÑù,Ëü·½±ãÁ˹¤³ÌÈËÔ±
µÄ²¼Ïß.ÁíÍâ,I2CÊÇÒ»ÖÖ¶àÖ÷»ú¿ØÖÆ×ÜÏß.ËüºÍUSB×ÜÏß²»Í¬,USBÊÇ»ùÓÚmaster-slave»úÖÆ,ÈκÎÉ豸µÄͨÐűØÐëÓÉÖ÷»ú·¢Æð²Å¿ÉÒÔ.¶ø
I2C ÊÇ»ùÓÚmulti master»úÖÆ.һͬ×ÜÏßÉÏ¿ÉÔÊÐí¶à¸ömaster.¹ØÓÚI2CÐÒéµÄÖª ......
ΪÁËʵÏÖÁ½¸öÊý×Ö½øÐн»»»£¬ÎÒÃÇͨ³£¿ÉÒÔÀûÓÃλÔËËãÀ´ÊµÏÖ
C++³ÌÐò swap(int a ,int b){a^=b^=a^=b;}
JAVA³ÌÐò swap(int a, int b){ a^=b;b^=a;a^=b; }»òÕß{ b^=(a^=b) ; a^=b;}
Èç¹ûJAVAÓÃC++µÄʵÏÖ·½Ê½Ôò»áµÃµ½ bµÃµ½ÁËaµÄÖµ£¬µ«ÊÇaÏÖÔÚµÄֵȴ² ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include ".\sqlite3_lib\sqlite3.h"
static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName)
{
int i;
for ( i=0; i<argc; i++ )
......
Í·Îļþregex.hÖж¨ÒåÁËc/c++ʹÓÃÕýÔò±í´ïʽµÄº¯Êý£º regcomp(), regexec(), regerror(), and regfree() ¡£regcomp()±àÒëÕýÔò±í´ïʽ£¬regexec()Æ¥ÅäÕýÔò±í´ïʽ£¬ regfree()ÊÍ·ÅÕýÔò±í´ïʽ£¬regerror()±¨¸æÕýÔò±í´ïʽ´íÎóÐÅÏ¢¡£Ê¹Ó÷½·¨ÈçÏ´úÂëËùʾ£º
static string merge_path(const string bas ......