上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 22 下一页
摘要: 问题定义: 现有一块共享内存,多个读进程和多个写进程。多个读进程可以同时读,但是当有一个写进程正在写时,其他任何读进程或写进程都不能执行。该问题有3种变种。第一种称为“读者优先”(readers-preference)。在此情况下,只要有进程在读,写进程就得等待。实现如下:#include #in... 阅读全文
posted @ 2015-08-16 16:54 Sawyer Ford 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: 信号量是什么?简单来说,信号量就是一个计数值,假设记为S。S > 0时,表示当前可用资源的数目;S = 0 continue;else blocked;V操作:S = S + 1;if S > 0 continue;else wakeup a blocked proces... 阅读全文
posted @ 2015-08-15 19:20 Sawyer Ford 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 条件变量是线程同步的另一种手段,主要逻辑就是等待和唤醒。条件不满足时,线程等待;条件满足,线程被(其他线程)唤醒。条件变量一般和互斥量一起使用,因为需要保证多线程互斥地修改条件。涉及到的函数有:int pthread_cond_init(pthread_cond_t *restrict cond... 阅读全文
posted @ 2015-08-15 16:05 Sawyer Ford 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 谈到多线程编程,同步是一定要讲的。给个例子: #include <stdio.h> #include <stdlib.h> #include <pthread.h> int count = 0; #define N 100000 void* fun() { int i; for (i = 0; i 阅读全文
posted @ 2015-08-14 14:34 Sawyer Ford 阅读(341) 评论(0) 推荐(0) 编辑
摘要: linux下的多线程通过pthread实现,下面给个简单的例子。#include #include #include void* thr_fn(){ printf("this is a thread, tid = %d\n", pthread_self()); printf("thr... 阅读全文
posted @ 2015-08-14 10:30 Sawyer Ford 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 本文主要整理一些常见的海量数据处理面试题。1. 海量id,找出出现次数最多的id情况1: 直接hash table统计,hash table包含N个(id, count)对,遍历求最值。情况2: 内存受限,海量id通过hash函数(id看做整数,hash函数取%1000)映射到1000个文件... 阅读全文
posted @ 2015-08-13 20:56 Sawyer Ford 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 首先了解一下linux中进程的5大状态: 状态转换关系图: 僵尸进程是指一个已经结束运行,但是其父进程尚未对其进行善后处理的进程。那么为什么一个进程结束运行之后,父进程要对它进行善后处理呢?善后处理做了什么事呢? 具体来说就是,一个进程结束运行之后,该进程并没有被彻底销毁,内核仍然为该进程维护了一些 阅读全文
posted @ 2015-08-13 19:21 Sawyer Ford 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 给定两个序列 X=, Y,求X和Y长度最长的公共子串。(子串中的字符要求连续) 这道题和最长公共子序列(Longest common subsequence)很像,也可以用动态规划定义。公式如下:这里c[i,j]表示以Xi,Yj结尾的最长公共子串的长度。程序实现:int longes... 阅读全文
posted @ 2015-08-12 19:49 Sawyer Ford 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 问题定义: 给定一个长度为N的数组A,找出一个最长的单调递增子序列(不要求连续)。 这道题共3种解法。1. 动态规划 动态规划的核心是状态的定义和状态转移方程。定义lis(i),表示前i个数中以A[i]结尾的最长递增子序列的长度。可以得到以下的状态转移方程:d(i) = max(1, d(j)... 阅读全文
posted @ 2015-08-12 16:34 Sawyer Ford 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串S、P,如何判断S中包含P?(假设S为较长字符串,要求P中字符在S中要连续出现) 这就是经典的字符串匹配问题。暴力匹配略去不说,一种较好的解法就是KMP。对于一个新手来说,想学习KMP,建议看如下两篇文章:字符串匹配的KMP算法(阮一峰)从头到尾彻底理解KMP(2014年8月22... 阅读全文
posted @ 2015-08-12 10:48 Sawyer Ford 阅读(207) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 22 下一页