在Thread2中的WaitOne()方法报错的原因是CLR对字符串的暂留,导致两个"test"指向同一个对象,结果前一线程没执行完,后一线程就对同一"test"对象锁定,当然会报错。这也是为什么你用mutex会经常死锁的原因!
re: 线程,同步与锁————Lock你到底锁住了谁 JerryZeng 2008-09-02 13:46
public void Thread2()
{
lock (this)
{
Thread.Sleep(500);
this.i = 1;
Console.WriteLine("Can't change the value in locking");
Console.WriteLine(this.i);//display 1
}
}
楼主,这一段的Can't change the value in locking意思是说上一句的this.i=1无效吗?(这一句更改是有效的)
re: 线程,同步与锁————Lock你到底锁住了谁 lzpwcysbx 2008-07-02 14:24
仔细测试了楼主的代码,弄清楚了
哈哈,我新手,我也凑凑热闹:
2个线程,给它们一把一样的锁( this,假设是锁名,可以换成 "1" "2" Object啊,等 ),但钥匙只有一把,必须等到线程A开了这把锁之后,把钥匙交到线程B后再来开这把锁。
ThreadA: lock(this){code} -> ThreadB: lock( this ){code}
如果是两把不一样的锁,则两个线程可以同时去开这把锁。
ThreadA: lock("1"){code}
ThreadB: lock("2"){code}
不知道理解错没 :(
re: 很有意思的HTML 4.0的BUG City22 2008-05-22 09:45
赫赫,谢谢这片文章,的确很有意思,这个问题是我在IE7下碰到的,不仅仅是IE6
re: 很有意思的HTML 4.0的BUG 杨正祎(阿一) 2008-05-21 19:32
XMLHttpRequest
这个可以进行异步提交执行,
而你所选的代替的方法,只能在onload的时候执行,需要刷新页面.
咤一看,好象还真的可以,我以为找到可以异步执行跨站点登陆了呢,
我没有测试,不能确定在一般方法里可以不可以用你的思路.
function btnclick(uri)
{
var script=document.createElement("script");
script.type='text/javascript';
script.language='javascript';
script.src=uri;
document.getElementsByTagName("head")[0].appendChild(script);
}
//欢迎交流 68681395
lock(this)
lock(i)
是不一样的
是lock粒度的问题
我觉得粒度越小越好
lock (this)
14 {
15 Console.WriteLine(this.i);
16 Thread.Sleep(1000);
17 Console.WriteLine(this.i);
18 }
我的理解当线程进入该临界区时,this整个被锁住,
lock(i)
{}
只是i被锁住
但我不知道经编译后的il是否在lock (this)做了一些特殊处理
正在找winform动态加载数据的功能,正好看到你的blog,有借鉴价值
呵呵不认真看这篇文章还以为作者乱扯呢,感觉这篇文章是容易让人误解
先是说lock锁住的是代码段
后面解释lock的原理表明,lock通过对象的一个索引实现互斥,这不锁的是对象
初看有点矛盾^_^
说下我理解的,lock(this)是给对象上了锁,但是不是把整个对象的属性和方法锁住了,只是让lock(this)这个代码不能在此执行
只有第一个lock(this)中的代码执行完以后才能执行第二个lock(this)
不知道对没呵呵
楼上朋友的代码我认真测试了
没感觉说明什么问题,作者的原理解释运行结果没问题
re: 做软件的都是民工! Enzo 2007-11-26 20:41
汗.....
下了个GI_Builder ...不会用~~....郁闷ing...有中文的教程嚒 ?
public class ss
{
private int i = 0;
ArrayList AL = new ArrayList(1);
public void Test()
{
AL.Add(0);
Thread t1 = new Thread(Thread1);
Thread t3 = new Thread(Thread1);
Thread t2 = new Thread(Thread2);
t1.Start();
t3.Start();
t2.Start();
Console.ReadKey();
}
public void Thread1()
{
lock (AL)
{
Console.WriteLine("执行Thread1lock开始\n");
Console.WriteLine(AL[0]);
Thread.Sleep(1000);
Console.WriteLine(AL[0]);
Console.WriteLine("执行Thread1lock结束\n");
}
}
public void Thread2()
{
lock (AL)
{
Console.WriteLine("执行Thread2lock开始\n");
Thread.Sleep(250);
AL[0] = 1;
Console.WriteLine("执行Thread2lock结束\n");
}
}
}
Thread2()中的 lock (AL)换成 lock (this)
看看结果有什么不一样???
lock的是对象不是代码段
也就是说,在线程给对象加上锁之前不允许执行{}里的代码,实际上锁的是对象
程序看明白了,分析的东西没看明白,lock究竟锁住了谁?
@Cat Chen
非常感谢。
@akuan
有人写已经很好了,为什么还要挑三拣四?
楼主,做人要厚道,你贴出来的代码本身就错漏百出,说得也不怎么样.
re: 做软件的都是民工! guest 2007-05-14 11:56
city22,容我说一句,你还是幼稚……这种事有什么好辩论的呢。别人不懂你的意思就让他们说去好了。
别说你真的没有,就算是看不起销售,看不起民工,那有怎么样呢。说话的权利还是有的嘛。顶多骂来骂去好了,不就是网络么。
re: C#环形链表 xiaoyang 2007-04-26 15:48
明白了,应用类,结构是值类型,呵呵,我再试试
re: C#环形链表 xiaoyang 2007-04-26 15:44
老兄, 这段代码你试过吗?我在执行plight = plight.next时发现next和previous都变为null的,我的代码和你差不多
struct SLight
{
public Label lLight;
private object lastObj;
private object nextObj;
public object next
{
get { return nextObj; }
set { nextObj = value; }
}
public object previous
{
get { return lastObj; }
set { this.lastObj = value; }
}
public SLight(Label label)
{
this.lLight = label;
this.lastObj = null;
this.nextObj = null;
}
}
for (int i = 1; i < Count; i++)
{
//AddLight(ref pLight, new SLight(light[i]));
SLight newSlight = new SLight(light[i]);
pLight.next = newSlight;
newSlight.previous = pLight;
pLight = (SLight)pLight.next;
/*这之后,pLight.next == privous == null,但newSlight.privous != null*/
}
re: 做软件的都是民工! 静旅 2007-04-25 11:01
妈的,把这公司给砸了。。。
侮辱人嘛。
re: 做软件的都是民工! tigermo 2007-04-24 09:22
纯粹是扯淡!!!!
其实只要看看张孝祥JAVA视频教程中关于java的线程同步与互斥就可以明白C#的线程同步和互斥了。
@路过
对,当然可以,随便什么都可以,asp也好,php也好,反正最后返回jsp脚本就可以了,我只是习惯用handler而已
re: 做软件的都是民工! City22 2007-04-20 17:49
@蛙蛙池塘
败坏软件业的门风。。。。
re: 做软件的都是民工! A.Z 2007-04-20 15:14
“我们就是想成为一个在当地成本低,开发水平高,服务好的公司。”
这样的公司的存在,农民工要负一大半的责任。
re: 做软件的都是民工! iCaca 2007-04-20 09:37
@蛙蛙池塘
:) 我们都是小兔子
但我们活得很开心
re: 做软件的都是民工! 蛙蛙池塘 2007-04-20 08:56
兔子这么愤愤不平呀,呵呵。
re: 做软件的都是民工! Roach 2007-04-19 18:19
让爱好变成工作.真是负担啊.改行买凉皮吧,地段好也比干Coding强.
re: 做软件的都是民工! 一清 2007-04-19 17:54
这样的日子还不如回家种田呢!!!这公司也太搞了,简直让人无法相信!
re: 做软件的都是民工! 小哈 2007-04-19 16:18
民工有他們的快樂生活
積極的人生,可以看到民工的快樂,可以看到花的笑聲、陽光的笑臉
《script src='xxxx.aspx?action=xxx'》《/script》不就行? 用个handler没什么用处,只是名字看起来象是js罢了.
re: 做软件的都是民工! Cure 2007-04-19 12:36
曾经有人告诉我,软件产业缺口多么多么大,人才缺多少多少千万。而现在进了软件业才发现,这都是说给人们听得戏文。真正做软件的是多么多么苦,多么多么累,给的钱是多么多么少倒是真的。
----------------------------------------------
这样的话居然都有人信?自己被忽悠只能怪自己了。
发布这样招聘广告的,估计是搞人事的和老板有仇吧,想公司垮啊,要么就是老板脑子进水了。
re: 做软件的都是民工! wang 2007-04-19 10:53
这个公司的有些条款好像违法了吧?
re: 做软件的都是民工! City22 2007-04-19 10:18
http://community.csdn.net/Expert/TopicView3.asp?id=5474564
关于这个这则招聘信息,在CSDN上也被讨论了,而且还有公司相关人员对招聘的解释。
转载一下:
关于招聘的几点说明
听朋友说,我的招聘上了csdn论坛,并且成了众多程序员的攻击谩骂对象,csdn是我经常来的地方,我也非常敬仰这里的高手,可是看到无理的谩骂,觉得与“程序员"不符。我对我的招聘解释如下:
1、农村出身,三年内不谈女朋友,舍得吃苦。我出身农村,目前农村的父亲和兄弟姐妹还靠我金钱上的接济,目前许多学生,大学毕业,尤其是大专的,出来找不到工作,找不到能够以后可以翻身,可以养家糊口的工作,许多学编程的,去了网通电信去做adsl的安装人员,去电子城装机器,去卖保险,今年挣800,明年还是800,可能以后还是800。买房照顾家里都不能实现。有的连这样的工作找不到。所以我想给穷苦子弟,热爱编程的,提供一个提高的平台。不搞对象,我想招聘那些先立业,后成家的人。穷苦子弟,四年大学,家庭欠债累累,出了校门,不长本事,光图享受,我觉得是对父母不孝,对社会不仁。
2、不吸烟喝酒。我觉得吸烟对自己身体,对社会都不利,完全是追求的个人享受。并且吸烟费钱,一个月烟钱,能够买一本好的书,能够订一年的软件报。
3、不善交际,能吃苦,坐的住,能够约束自己,没有其他生存途径,愿意长期从事编程的员工。我们找的是写程序的,不是跑销售的,天天电话不断,应酬不断,怎么能够做这么烦燥的程序员工作。如果有其他的本事和能力,比如能够当老板,我劝你不要写程序,如果有营销能力,还是去跑市场。没有其它能力,喜欢编程的人是我们寻找的对象。
4、公司管吃住,轮流做饭,24小时在公司,没有节假日,加班的概念,工作休息自主决定。吃饭自己不做行吗,让父母来做吗,天天吃饭店吗。因为吃住全在公司,所以基本整天在,当然有事可以请假。除了吃饭,睡觉,锻炼,就是在公司研究代码。你晚上工作了,白天可以大睡。
5、实行年工资,应届学生,第一年最少拿5000元回家过年; 我想问一下,现在的应届生,5月份到公司,年底能够拿多少钱回家给父母,我1年发一次工资,就是怕让你把钱花了,因为平常穿衣吃饭住宿理发看病公司全管,你要钱何用。我不知道各位英雄们,第一年春节拿了多少钱给父母。实际上我们要给的多,去年给了8000,第二年的程序员,我们给了18000元钱。
6、大学期间,自己有微机,有c#或c++基础,机器带到公司。学专业,大学期间没有计算机,我怕不熟练,机器带到公司,因为卖掉没有多少钱,公司收购了,两下合适。实际上就有一个带了年脑来。
真正的的把公司当家的人,不会在意这些
河北卓越科技信息公司是一家以做软件、网站开发为主的小公司,吃住办公都在一套四居室的居民房里,不喜欢软件编程,在这里没有丝毫乐趣。公司的目标是用软件解决企业重复的劳动,提高其工作效率。公司需要的是快乐工作,工作快乐的员工。公司认为,只有喜欢,才有精品,才有回报。公司欲求把企业当家,把公司当成自己终生归宿的员工,公司本身就是家庭,只有我为人人,才能人人为我,员工、老板是一家人。不怕没技术,怕你不爱好。不怕你没水平,怕你没人品,坚信人品第一,技术第二。公司愿意提供一个生存、发展的平台,愿意提供一个钻研技术,忘我工作的平台。斤斤计较,自私自利的人请不要投递简历。公司认为想当元帅的士兵不是我们招募的员工,我们需要能够正确认识自身价值,具有准确人生定位的朋友,共同发展。你有多大,公司有多大,公司有多大,你有多大!海阔凭鱼跃,天高任鸟飞!
我不知到你们所做的公司如何,项目多不多,你们是花的自己挣的钱还是老板的钱,做软件的公司挣钱容易吗。可是有些同学,就是喜欢安静的写软件,我给他们提供一个平台有什么不好。我公司的员工到现在也没有跳槽的,我们也开了不少的软件,逐步有了点名气。我们就是想成为一个在当地成本低,开发水平高,服务好的公司。我们公司只有写程序和美工,没有管理人员,老板是在别处打工挣钱,同时负责业务。财务,测试,项目分析也是他一人。现在就是想找一个想一起干的人。当然如果你就是写程序的性格,非得让你当经理,我觉得那是两为难。所以要正确做好自己的职业定位。
re: 做软件的都是民工! Jeffrey Zhao 2007-04-19 09:59
@panzhilei
程序员教育的问题啊,唉。我以前说,这些怎么能算做程序员。现在只能说,优秀的程序员如何如何……
re: 做软件的都是民工![未登录] panzhilei 2007-04-19 09:41
@Jeffrey Zhao
可惜啊,真正高手和一般程序员比例位2:8,所以才叫受苦大众啊,一般的程序员在现在计算机普及教育里到处都是,高中初中的都可以"青鸟"了,不少公司做的业务也不高级,招个一般的又便宜又好,一般的人公司待遇不好,过段时间又跳,新的一般的又来,历史从来就是这么循环的,看的是你被剥削时老板给的报酬和被剥削的忍耐程度。
公司都有个倾向,找个又便宜的又什么都会的才是他们的最终目标。
始终要记住,在大多数或者80%的情况下你只是给老板赚钱的打工仔。
说到底,每个人还是要自己奋斗,创出自己的天地。书上写的都是成功的例子,真正重要的是如何在逆境中成长,各位就要自己想办法了。
re: 做软件的都是民工! City22 2007-04-19 09:26
唉~我本来想说软件业出现这样的公司是不是软件业的未来,是不是软件业的悲哀。
可是大家总是从侧面来讽刺我,什么毕业生该踏实学习啊,什么看不起销售人员啊,或者民工论。
我承认我说的话有很多漏洞,我也承认我错了,向劳工人民道歉,向销售人员道歉。
但我也希望大家能理解我的意思,这样的公司是否就是软件业的未来。
re: 做软件的都是民工! 网魂小兵 2007-04-19 09:21
无聊;
不要小看民工,现在请他干活一天也要一百多!
看到了一个公司这样就能推出所有公司都这样,以后的趋势就看这家公司?
你有没有法律常识,那家公司说的有几条是合法的?
re: 做软件的都是民工! City22 2007-04-19 09:18
@ocean
愿望啊,我没有看不起,无语了,误解我意思了。。。。
唉,再解释估计就该解释出别的问题了,干脆不解释了
re: 做软件的都是民工! 活靶子 2007-04-19 09:09
各位给这个网站带去了多少流量哦
re: 做软件的都是民工! e表 2007-04-19 09:07
估计以后这类招聘会越来越多. ( .net报表工具,web报表,报表设计器,.net报表,web打印,excel,报表开发,报表控件,纯.net写的web报表开发工具在:
http://www.fcsoft.com.cn/webreport.htm
)
re: 做软件的都是民工! 事实 2007-04-19 08:46
别人写 HTML 也都3000每月 这样的公司 去做什么 ?
是狗才去的。
re: 做软件的都是民工! henry 2007-04-19 08:43
这几年都拿这样平稳的工资,就算是民工也愿了。。。
re: 做软件的都是民工! wyz 2007-04-19 08:37
民工怎么了,小伙子?你要是有这样的心态你还能和谁比?难道要和国家主席不成?
re: 做软件的都是民工![未登录] 小鬼 2007-04-19 00:58
河北的这家企业一点都不尊重人权,
re: 做软件的都是民工![未登录] 小鬼 2007-04-19 00:53
不要动不动就拿农民工人兄弟来说事.
re: 做软件的都是民工! 水果阿生 2007-04-19 00:07
@City22
小兄弟啊,我说两句你别不爱听,销售直接给公司带来收入,所以收入高于软件工程师这是一个必然,同时销售付出的比程序员要多,程序员也说到底也就是开发代码,累一点而已,销售是24小时全陪,女销售还时不时得跟客户睡觉。当然,你要是觉得这也无所谓我也就没话说了。所以坦白说,销售付出的东西比程序员多太多了,多拿钱是合理合法的。你能拿多少钱不光取决于付出多少还取决于你付出的效果。程序员对公司来说,给公司带来的利益明显不如销售。当然公司缺了谁也不能再转,不过现在的情况就是如此。
说了半天,程序员和民工都是靠出卖自己挣钱,准确点说是出卖自己的劳动力挣钱,这也没什么,我觉得你犯不上瞧不起民工吧,大家都是吃手艺饭的。凭什么就看不起民工呢?
re: 做软件的都是民工![未登录] ocean 2007-04-19 00:01
我发现楼主有点瞧不起销售啊,你认为销售就是动动嘴皮子就能从人家口袋里面掏钱出来?那销售人员还认为你们敲敲键盘就能编出软件呢。这个世界上,从人家口袋里面拿钱实际上是最困难的事情,所以实际上销售比程序员难做多了。很多销售的底薪都只有1000块甚至更低,但是你要看人家每天都是跑多少个小时才出来的业绩。你做出来的东西有什么价值呢?还不是要销售人员把东西卖出去了拿回钱来才能体现你的劳动价值?否则卖不出去你的代码还不是一堆字符,能有什么价值!
我女朋友就是做销售的,每天最少的时候才睡3个小时,比我累多了,虽然平均每个月有个1万多,表面上看起来和我差不多,但是付出的劳动绝对比我多多了,所以她都非常羡慕我能够这么轻松的赚钱。千万别瞧不起销售,不信你干着试试看。
re: 做软件的都是民工! Chester 2007-04-18 22:50
我非常同意作者的说法,做软件的都是民工,其实做什么都是工人,除非你是老板。做工人有什么不好呢? 做什么都是挣钱吃饭。
国内的问题是没有法律,比如,一周工作40小时,超过40小时要和员工商量,如果员工不愿意,老板不能说半个不字,加班要Double Pay。老板招聘不能问性别,年龄,信仰,嗜好等,如果问了,被告到法院肯定是输,而且要被罚得倾家荡产。
路在何方? 到北美来。