10 2013 档案

四种进程或线程同步互斥的控制方法
摘要:四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2、互斥量:为协调共同对一个共享资源的单独访问而设计的。3、信号量:为控制一个具有有限数量用户资源而设计。4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达 阅读全文

posted @ 2013-10-30 22:34 samules 阅读(751) 评论(0) 推荐(0)

二叉树转双向链表
摘要:1 void ConvertToList(TreeNode*& root) { 2 TreeNode* left; 3 TreeNode* right; 4 if (root) { 5 left = root->left_; 6 right = root->right_; 7 TreeNode* left_most_right = left; 8 while (left_most_right && left_most_right->right_) { 9 left_most_right = left_mo... 阅读全文

posted @ 2013-10-28 23:44 samules 阅读(219) 评论(0) 推荐(0)

最大连续子序列和
摘要:1 int maxsequence3(int a[], int len) 2 { 3 int maxsum, maxhere; 4 maxsum = maxhere = a[0]; //初始化最大和为a【0】 5 for (int i=1; i maxsum) { 11 maxsum = maxhere; //更新最大连续子序列和 12 } 13 } 14 return maxsum; 15 } 阅读全文

posted @ 2013-10-28 19:27 samules 阅读(230) 评论(0) 推荐(0)

找出一个字符串中第一个只出现一次的字符
摘要:1 #include 2 using namespace std; 3 4 char lmf(char *pString) 5 { 6 if(!pString) 7 { 8 return 0; 9 } 10 //定义并初始化hash表 11 unsigned int hash[256] = {0}; 12 13 char *pHashKey = pString; 14 //根据字符串,计数!!! 15 while(*pHashKey != '\0') 1... 阅读全文

posted @ 2013-10-28 19:15 samules 阅读(278) 评论(0) 推荐(0)

二叉树的镜像变换
摘要:1 #include "stdafx.h" 2 #include 3 using namespace std; 4 5 struct BinaryTreeNode 6 { 7 int m_nValue; 8 BinaryTreeNode *m_pLeft; 9 BinaryTreeNode *m_pRight; 10 }; 11 12 //构造树的镜像 13 void Mirror(BinaryTreeNode *pRoot) 14 { 15 if (pRoot != NULL) 16 { 17 ... 阅读全文

posted @ 2013-10-28 19:11 samules 阅读(267) 评论(0) 推荐(0)

二叉树的层序遍历(广度优先遍历)
摘要:1 #include 2 #include 3 using namespace std; 4 5 //树结构 6 struct BTreeNode 7 { 8 int m_nValue; 9 BTreeNode *m_pLeft; 10 BTreeNode *m_Right; 11 }; 12 13 //层序遍历二叉树,即广度优先。 14 void Print(BTreeNode *pNode) 15 { 16 if(!pNode) 17 { 18 return ; 19 ... 阅读全文

posted @ 2013-10-28 19:10 samules 阅读(412) 评论(0) 推荐(0)

SQL注入
摘要:SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,如何防止sql注入式攻击:使用预编译SQL语句;使用SQL参数传值,不拼接SQL;过滤非法字符;使用存储过程,如果实在要使用sql语句,进行语法判断,发现有非正常的sql语法,则提示错误存储过程跟触发器存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。例子:CREATE PROCEDURE order_tot_amt@o_ 阅读全文

posted @ 2013-10-14 14:54 samules 阅读(216) 评论(0) 推荐(0)

linux进程状态
摘要:父进程和子进程的关系是子进程是父进程的一个副本,创建子进程后,子进程会有自己的空间,然后把父进程的数据拷贝到子进程的空间里。谁先运行是不确定的,父子没有明确的先后顺序子进程退出时,会向父进程发送中断信号,只有父进程处理了信号,子进程的相关资源才会被系统回收fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说, 阅读全文

posted @ 2013-10-09 17:38 samules 阅读(548) 评论(0) 推荐(0)

导航