Linux下线程的同步

操作系统实验用的程序,保留一个。没什么技术含量,请见谅^_^

这个程序就是解决那个著名的“生产者—消费者”的问题,貌似线程的同步都讲这个问题,Java里面也有,不过操作起来貌似要更简单一点。

在这个程序里subp1()用来生产一个 int 数据,subp2()用来获取这个整数。首先是subp1()生产一个数据,subp2()再去获取这个数据。subp2()获取数据的首要条件是 subp1()已经生产了一个新的数据,subp1()生产一个新数据的前提是subp2()已经获得了subp1()生产的前一个数据。[#afdream.com#]

/*thread synchronization*/
/*thread.c*/
/*Afdream.com*/
/*2005-12-20*/
#include
#include
#include #include
#include #include

/*function of p opration*/

在网页中预载图片

预载图片就是在网页下载的过程中把一些暂时不用显示的图片提前下载下来,缓存到临时文件夹里,到要显示时就不会要重新下载了。

举个简单的例子:现在很多网页都用图片做为链接的背景,当鼠标移上去时,背景图片就会发生变化,这种效果还是很不错的。但是在网速较慢的情况下,往往会发生这样一种情况:当你的鼠标移到链接上时,背景变成了一篇空白,导致链接的名称是什么都看不到了,这就是因为要显示的图片没有被预载,而需要临时到服务器去下载。典型例子:(闪吧 有这个问题,但我现在上不了,自己找找咯,很明显的)

解决方法也很简单:
在之间插入下面的代码:

也讨论一下ASP在线人数统计(一)

ASP中统计在线人数的方法花样繁多,我也搞不清楚有几种 ^_^,偶这里介绍三种先,如有错误,欢迎各位批评指正,还有好方法,敬请补充!

首先介绍一种最简单的方法,利用 Application、 session 和 Global.asa ,因为当用ASP制作的网页都存放与WWW服务器的基点目录并且WWW服务器启动之后,每当有对ASP文件的HTTP请求时,服务器都会去读取基点目录下的Global.asa文件。所以可以在 Global.asa 文件中包含如下代码:

‘ 当服务器开启时,设置用户计数器为0
Application(“ActiveUsers”) = 0
End Sub
Sub Session_OnStart

‘ 设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的资源占用越多)
Session.Timeout = 20

也讨论一下ASP在线人数统计(二)

第三种方法和这个类似,只不过是根据用户的 IP 来判断在线人数,这样就避免了三面的特殊情况,而且不需要用 session 哦!
首先还是建一个数据库:count.mdb,包含一个表:count,表中字段为:

ID 自动编号
ip 文本
posttime 日期/时间

具体实现代码如下,文件名为 online.asp:
[#afdream.com#]

<%
‘———定义变量
dim rs
dim ip
dim timeouted
dim x
dim conn
dim dbpath
‘———定义变量结束

‘———建议数据库链接
set conn=server.createobject(“adodb.connection”)
DBPath = Server.MapPath(“count.mdb”)

诡异!开机居然提示有未读邮件

昨天一不小心点了一个邮件链接,打开了 Micro$oft Outlook 2003,偶就顺便把账户给设置了一下(原来曾经用过这个,个人感觉不是很好用)。

今天开机的时候,发现有一件很诡异的事情,在我的登录头像的下面居然有一个提示:“您有一条未读的邮件消息。”我清楚的记得我没有用 Outlook 收过邮件,这封邮件是从哪儿来的呢?进入电脑,打开 Outlook,的确是没有邮件!

仔细想想,问题会在什么地方呢?M$ 的软件喜欢写注册表,莫非……试试就知道了,左手按下“ WIN ”右手按下“ R ”,输入 “regedit”,打开注册表,再“ Ctrl+F ”,输入 outlook,只勾选 “项”,回车。呵呵,还真找到了 Outlook 这项,但遗憾的是,其中并没有与“有一封未读的邮件”相关的任何项或值。

突然发现自己好笨,这么好的两位大师在旁边都不问!Google百度,随便挑一个,输入”未读的邮件消息“,回车,发现还真有不少人碰到过跟我一样的问题,呵呵………

gotoAndPlay()+stop()!=gotoAndStop()

以前一直以为是相等的,今天做一个导航时才发现它们不等,这是后来我的测试:

主场景中有几个用来当按钮的MC,名称分别为:menu01,menu02,menu03;
还一个MC名称为menupic
在主场景中写上:

menu01.onRollOver = function() {
_root.menupic.gotoAndPlay(2);
};

menupic有两帧:
第一帧写有:

trace(“1”);
stop();

[#afdream.com#]
第二帧写有:

trace(“2”);
stop();

当你连续把鼠标移到menu01上时输出的结果为:

1
2
1
2
1
2
1
2
1
2

但是如果在主场景中写上:

menu01.onRollOver = function() {
_root.menupic.gotoAndStop(2);
};

相同的操作,输出的结果为:

2
(只有一个)

Bye,MM!

这是从 MM(此文中均指 Macromedia )的网站截的图,网站的主题颜色也变了,由蓝色转为灰色。

Adobe 完成对 Macromeida 的收购:Adobe completes acquisition of Macromedia

MM 再也不在了,只有 Adobe Systems Incorporated 了。Macromedia Studio 8 也变成了 Adobe Web Bundle 的一部分了……

到现在仍然习惯使用 MM 的三剑客,我从来就不会 Adobe 的任何软件,失去了 MM,不知道习不习惯 Adobe 的陪伴……[#afdream.com#]…

写程序的五个好习惯

虽然太阳很大,但是今天的温度却只有0~7度,昨天是阴天却不觉得有今天这么冷。我昨天心情挺好的,今天的心情却很郁闷,不是因为天气,而是因为 1500 行代码。

已经毕业的一位学长,给一个网站我改,本来应该是件好事,没想到很是令我郁闷。网站里面有一个弹出菜单,主菜单项只有六项,但是只菜单项比较多(就是链接比较多啦),需要在这个菜单上再添加 N 个项(N 也不小)。这个菜单是用 JavaScript 写的,本来我对 JavaScript 也不是特别熟悉,打开文件一看,立马傻眼,两段代码足有1500行(DW里可以看到的),没有任何缩进格式就不说了,而且变量名都是些毫无意义的字母和数字的组合,还特别长。最郁闷的是程序是有1500行,没有一行注释!所以郁闷的我要发几句牢骚:

1、程序要有格式,要适当的使用缩进。这样程序的层次结构才会看起来比较清晰,而且看你的程序的人也会感觉到一种美——赏心悦目。我看到有很多人,程序写了不少了,居然到现在写程序还是不会使用缩进,所有的代码都是左对齐的,没有一点层次感。缩进时一般使用…

Flash Player 存在严重安全漏洞

2008年10月22日更新,特别提醒:最近爆出的安全漏洞不是指下面的,具体请参考这篇文章:《关于FlashPlayer前几个月爆出的严重安全漏洞》

=============================

今年6月,Flash Player 暴露出了一个安全漏洞,现在,Macromedia 终于修复了它。该漏洞可以允许攻击者在播放器中嵌入恶意代码并执行,进而威胁用户的系统安全。 

该漏洞只影响 Flash Player 7(版本号为7.0.19.0)及其之前的Flash Player,而新版 Flash Player 7(版本号7.0.61.0、7.0.60.0)和 Flash Player 8(版本号8.0.22.0) 已经对漏洞作出了修复。对于使用Windows 95/NT系统而无法升级到 Flash Player 8 的用户,Macromedia 建议立即安装Flash Player 7.0.61.0。

该漏洞由安全公司 eEye Digital…

用Javascript读写Cookie

写在前面:这篇文章出来的晚了,还请大家原谅!主要原因是今天放学后,被人拉去Happy了^_^,也祝大家周末快乐!

接上回:
要让浏览器记住用户选择的样式文件,最简单的方法就是使用cookie了,而且用Javascript设置和读取也很方便。

//设置Cookie的函数

function SetCookie(name,value){
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2 var path=(3 var domain=(4 var secure=(5 document.cookie=name+”=”+escape(value)+((expires==null)?””:(“; expires=”+expires.toGMTString()))+((path==null)?””:(“;