- 博客(54)
- 资源 (24)
- 收藏
- 关注
原创 关于信号量与线程互斥锁的区别与实现
之前一直没有怎么关注过这个问题,前些日子在面试一家公司的时候,面试官提到了pthread_cond_wait/pthread_cond_signal的实现,当时答的不是很好,回来就查了nptl的代码。前天,水木上又有人问到了信号量和互斥锁的问题,我想还是对它们的区别与实现总结一下。首先了解一些信号量和线程互斥锁的语义上的区别:>>>>>>...
2009-11-30 14:37:04 77
原创 Linux信号量线程控制
线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。PV原语是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)具有对公...
2009-11-30 14:31:25 122
原创 循环队列(C语言版)
循环队列(C语言版) 作者:刘勉刚 E-mail:liumgj@163.com 线性结构的主要操作就是插入和删除,我们前面讲过的顺序线性表、单链表、双链表都没有限制插入和删除操作的位置。如果我们限定插入和删除操作在线性表的同一端进行那么这种结构就是栈;如果限定插入在一端而删除在另一端,这种结构就是对列;栈的特点是先进后出(FILO)而对列是先进先出(FIFO)。进行插入...
2009-11-30 13:00:02 236
原创 C语言优先级列表
醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员 坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度 酸-算术,5个: * / % + -减 味-位移,2个: << >> 灌-关系,6个: < <= > >= == 等于 != 不等于 味-位逻,3个:...
2009-11-30 12:40:58 141
原创 信号量和自旋锁
内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过度;伴随...
2009-11-29 21:56:32 150
原创 Linux信号量semaphore编程实例
本例示范Linux信号量的基本用法。该范例使用了两个线程分别对一个公用队列进行入队和出队操作,并用信号量进行控制,当队列空时出队操作可以被阻塞,当队列满时入队操作可以被阻塞。主要用到的信号量函数有:sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。sem_timedwait:...
2009-11-29 21:20:33 160
原创 Linux获取当前时间
Linux获取当前时间最近在查关于Linux下时间编程的问题:1. Linux下与时间有关的结构体struct timeval{ int tv_sec; int tv_usec; }; 其中tv_sec是由凌晨开始算起的秒数,tv_usec则是微秒(10E-6 second)。 struct timezone...
2009-11-29 21:16:03 149
原创 pthread库学习(2): 线程的同步,使用信号量
先看下面这段程序,主线程创建了三个线程,每个线程中均有一个打印语句。#include <stdio.h>#include <pthread.h>#include <semaphore.h> void *thread_a(void *in){printf("I am thread_a\n");pthread_...
2009-11-29 20:55:11 205
原创 C/C++语言void及void指针深层探索
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来...
2009-11-29 20:28:24 65
原创 信号量的基本思想
信号量是1965荷兰Dijkstra为了解决并发进程问题而提出的一个重要操作系统的思想其基本思想: 两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某个位置停止,直到它接收到一个特定的信号。任何复杂的合作需求都可以通过适当的信号结构得到满足。为了发信号,需要使用一个称为信号量的特殊变量。为通过信号量s发送信号,进程可执行原语semSignal(s...
2009-11-29 20:17:34 805
原创 Apache配置多个站点(非虚拟目录)
Apache配置多个站点; 例如,现在您有一站点:http://localhost/ 想添加一个端口运行另外一个站点:http://localhost:8080/ 第一步: 新建一个配置文件复制 httpd.conf 另存为 hooyes.conf (当然您可以起一个比这个更好听一点的名字)第二步: 修改配置文件打开 hooyes...
2009-11-28 21:12:09 100
原创 基于Apache在本地配置多个虚拟主机站点
基于Apache在本地配置多个虚拟主机站点 简单的说,打开httpd.conf 在最后加入如下内容:[code="xml"] DocumentRoot d:/AppServ/www2 ServerName 127.0.0.2:80< irtualHost> Options Indexes FollowSymLinks Multiv...
2009-11-28 21:09:08 133
原创 APACHE多站点配置方法
APACHE多站点配置方法例如你的主机IP:192.168.1.8 而你有三个站点,域名为:www.111.com,www.222.com,www.333.com 相应的网站文件放在主机的:\website\111;D:\website\222;D:\website\333文件夹下 现在打开APACHE配置文件httpd.conf文件,设...
2009-11-28 21:04:26 93
原创 更换域名SEO数据操作及301重定向方法
以前注册一个域名www.atjk.net意为凹凸健康网,后来在调试酒店管理资料网www.hotelmemo.cn时,当时www.hotelmemo.cn域名还没有掉下来,注册不了,于是将www.atjk.net用在这上面了。现在www.atjk.net文章没有多少,但访问量保持在200以上,PR为2,觉得这个域名用在酒店管理资料的网站上不太容易记,而且也不相关,正好hotelmemo.cn...
2009-11-28 17:38:32 228
原创 完美的Apache静态.htaccess文件 [discuz和home带301重定向]
完美的Apache静态.htaccess文件 [discuz和home带301重定向] 本帖最后由 下砂 于 2009-11-13 10:32 编辑 先后修改过三次,加了301重定向 [顶级域名和论坛二级域名] 后rewrite base保持/ 状态就可以了,不需要填写。里面说明也已经很详细,解压后打开,修改下301重定向的域名,上传到论坛根目录即可。演示:点击ht...
2009-11-28 16:49:05 110
原创 自定义404页面(Apache+PHP)
直接把这个写到虚拟主机配置服务器里面去 # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some ex...
2009-11-28 16:16:11 109
原创 404页面
会根据访问者请求的原来旧站中存在的页面,自动的跳转到新站中相应的页面如: 访问者请求http://asp2k.com/1.html 则系统自动跳转到http://www.asp2k.com.cn/1.htmlShtml版代码: <html><head><meta http-equiv='refresh' content...
2009-11-28 15:45:33 125
原创 dedecms如何增加404页面
dedecms在虚拟主机上如何增加404错误页面呢,从网上找了几个说的都不是太清楚,我给总结了一下:1.新建.htaccess文件2.在文件里添加<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /ErrorDocument 404 /404.htm</IfModule>3.自己做一个40...
2009-11-28 14:54:01 236
原创 获得系统时间 转换成字符串
关键字: java有时候经常用到JAVA 时间转换 如 字符串转换成时间,时间转换成字符串1.long字符串转换成yyyy-MM-dd HH:mm:ss 格式输出Java代码 1. /** 2. * 将长时间格式字符串转换为字符串 yyyy-MM-dd HH:mm:ss 3. * @return 4. */...
2009-11-28 14:27:02 365
原创 认识StringBuffer类(2)
11.1.1 认识StringBuffer类(2)http://book.51cto.com 2009-07-31 08:42 李兴华 清华大学出版社 我要评论( <script src="http://www.51cto.com/php/getArtCount.php?artid=140661&amp;type=all"></script> 0 )...
2009-11-28 13:45:51 121
原创 解决RandomAccessFile写入文件乱码的办法
out.writeBytes( " \r\n " );mess = " 写入文件 " ;byte buffer[] = new byte [ 1024 ];buffer = mess.getBytes();out.write(buffer); out.close(); // 关闭文件流 } catch (IOException e) ...
2009-11-28 11:57:29 408
原创 使用Java在文件里插入一行
在文件里增加一行的唯一方法就是读取原始文件,然后写入到一个临时文件,同时写入要插入的数据。然后删除原始文件,再把临时文件改名为原始文件名。[code="java"] package net.java2000.io; import java.io.BufferedReader; import java.io.File; import java.io....
2009-11-28 11:39:19 454
原创 Java documentation in Windows Help format
http://javadoc.allimant.org/J2SE 7 Preview documentation HTMLHelpJun. 23,200957 MbLink J2SE 6 documentation HTMLHelpJun. 23,200854 MbLink J2SE 5.0 Documentati...
2009-11-28 10:49:53 58
原创 堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(...
2009-11-27 23:30:40 49
原创 Java文件操作总结4
输入输出流 在Java中,我们把能够读取一个字节序列的对象称作一个输入流;而我们把够写一个字节序列称作一个输出流。它们分别由抽象类 InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java 引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字...
2009-11-27 23:27:11 47
原创 Java文件操作总结3
1、课程名称:JAVA文件操作 File、输入、输出流、对象序列化2、知识点2.1、上次课程的主要知识点 1、 String与StringBuffer的区别 String一旦声明之后内容不可改变,可以直接赋值,连接可以用+号 StringBuffer的内容可以改变,必须实例化之后赋值 2、 Class类的作用 Class表示反射机制,表示一切类的组成 通过...
2009-11-27 23:24:49 84
原创 Java(jsp)文件操作总结2
本文汇集常用文件操作方法,包括文件的建立/检查与删除,目录的建立/检查与删除,取出目录中文件,文件属性的取得,逐行读取数据等等。 文件的建立/检查与删除 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="Java.io.*"%> <html> <h...
2009-11-27 23:22:39 110
原创 JAVA文件操作大全
JAVA文件操作大全 收藏 1.创建文件夹 File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { System.out.println("新建目录...
2009-11-27 23:18:57 93
原创 Java文件操作总结
标题:Java文件操作总结(一)内容:由于一直在使用Java file功能,但是总是很混乱,今天将Java File的所有功能做一个总结。Java文件操作我个人认为重要的问题有: a:如何跨平台问题 b:文件编码问题,尤其是多语言平台情况下如何正常工作。 c:文件读写效率、操作效率 d:文件加密和文件安全 e:文件快速检索,强烈建议使用lenc...
2009-11-27 23:15:18 128
原创 多进程通信方式一:管道(PIPE)
进程通信(IPC)的几种方式及比较撰文:黄显国080416 难得闲暇,抽空学习了一下进程通信的知识,现将这几天的所学做一下总结,以备遗忘时参考。 进程通信的方式:Linux系统继承了三种系统的进程通信模式:1、 基于system V IPC2、 基于UNIX IPC3、 基于POSIX IPC...
2009-11-27 18:29:01 250
原创 进程的管道通信
实验四 进程的管道通信实验目的1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验内容编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message!父进程从管道中读出二个来...
2009-11-27 18:12:40 486 2
原创 Linux下线程的挂起和恢复
POSIX的Linux操作系统没有提供线程挂起和恢复的例程,在网上找了找,看到一个老外写的程序,感觉想法不错,放在这里大家分享一下。理论上应该可以实现,不过我没有试,给大家提供一个参考。 (在读取缓存里的数据时,当缓存中没有数据最好把线程挂起)void CPrcThread <Worker>::suspend(){ ifdef WIN32 //do wind...
2009-11-27 15:42:24 437
原创 Linux 编程之生成静态连接库
静态库及动态库的建立 UNIX系统及各种软件包为开发人员提供了大量的库文件。但一般情况下这些库文件还不能足以满足用户的所有需求。开发人员大多会根据他们自己的开发、研究要求编写出许多函数。对于这些函数,如果都用在命令行中指定源文件的方法同调用它们的程序链接起来,虽然也是可以的,但也有一些缺点:..... 下面来看看如何生成静态库。 我们知道静态库也称档案库,在此档案文件...
2009-11-27 15:41:42 60
原创 LInux高级编程 - 线程(Threads)
LInux高级编程 - 线程(Threads)ALP Chapter 4 线程(Threads)线程可以简单理解成为进程的下级。一个系统可以有多个进程,一个进程内部可以有多个线程。 回想上一章讲过的新进程的创建。先是fork,相当于拷贝了一个新的进程,然后调用exec,我们便有了两个毫不相关的进程。线程不一样,当创建一个新的线程时,它和原来的线...
2009-11-27 15:40:41 151
原创 Linux下c开发 之 线程通信
1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时 clone了父进程的资源,因...
2009-11-27 15:39:39 78
原创 exec系列系统调用
exec系列中的系统调用都完成相同的功能(只是参数不同而已),它们把一个新程序装入调用进程的内存空间,来改变调用进程的执行代码,从而形成新进程。如果exec调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。这就是说,exec没有建立一个与调用进程并发的新进程,而是用新进程取代了原来的进程。所以,在exec调用成功后,没有任何数据返回...
2009-11-27 15:33:42 552
原创 Linux系统调用--进程管理(1)
Linux系统调用--进程管理(1)本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法。 关于进程的一些必要知识 先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程。”这个定义非常严谨,而且难懂...
2009-11-27 15:13:43 248
原创 有关fork的对话
第一贴:cu上关于fork()函数的精辟分析 声明:在别人的博客上看到这篇文章,真的很精辟,把问题一下子讲清楚了。所以,特意转贴在此,向各位高人致敬,也向原贴主致谢!本人不改变原贴的风貌。 查看原文 作者:ccf 发表于:2006-04-01 17:11:01#include ; #include ;...
2009-11-27 09:22:32 104
原创 多进程编程
什么是一个进程?进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务。多进程编程的主要内容包括进程控制和进程间通信,在了解这些之前,我们先要简单知道进程的结构。 2.1 Linux下进程的结构 Linux下一个进程在内...
2009-11-27 09:18:13 58
Vaadin独家第一手资源-Vaadin-api.chm
2010-02-05
HACK\万网,让我说你什么好!!!本站学员经典作品.mhtHACK\万网,让我说你什么好!!!本站学员经典作品.mht
2009-08-22
HACK\总结一下入侵的14种可利用方法.htmHACK\总结一下入侵的14种可利用方法.htm
2009-08-22
HACK\fhod's Blog 一个注射点,一个webshell甚至系统权限 -.mht
2009-08-22
Cmd模式下的入侵技术大全Cmd,模式,入侵,技术 - 网站入侵 - 冰兰技术论坛 - 冰兰社区-冰兰官方论坛-冰兰安防论坛.htm
2009-08-22
[转载]php注入专题 脚本安全[ Web Application ].mht[转载]php注入专题 脚本安全[ Web Application ].mht
2009-08-22
[转载]LOG备份与备份差异的对比!.mht[转载]LOG备份与备份差异的对比!.mht
2009-08-22
[转载]《SQL Injection规避入侵检测技术总结》 邪恶八进制信息安全团队官方讨论组 努力为祖国的信息安全撑起一片蓝天 - EvilOctal Security Team - E_S_T.htm
2009-08-22
[原创]新型注入方式直击网络——session注入探究 邪恶八进制信息安全团队官方讨论组 努力为祖国的信息安全撑起一片蓝天 - EvilOctal Security Team - E_S_T.mht
2009-08-22
[原创]如何突破数据库Loop防下载实例 邪恶八进制信息安全团队官方讨论组 努力为祖国的信息安全撑起一片蓝天 - EvilOctal Security Team - E_S_T.mht
2009-08-22
[内酷族]教程站-Mysql教程之MYSQL用户root口令为弱口令又一入侵办法- NKZU_com.htm
2009-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人