??xml version="1.0" encoding="utf-8" standalone="yes"?>自拍偷拍欧美日韩,国产乱视频在线观看,精品国产美女a久久9999http://www.aygfsteel.com/sweetsc/category/50265.html执念Q自?004zh-cnThu, 26 Jan 2012 15:00:29 GMTThu, 26 Jan 2012 15:00:29 GMT60~译原理入门以及(qing)战大作业心得Q?Q汇~简易入?/title><link>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html</link><dc:creator>[NKU]sweet</dc:creator><author>[NKU]sweet</author><pubDate>Thu, 26 Jan 2012 14:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/368903.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/368903.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/368903.html</trackback:ping><description><![CDATA[<div><div>应刁哥多q前的约E,外加l合~译原理pdq蝲Q整理一下上一文章,写一个简易的汇编教程……</div><div>管谬误Q疏漏若qԌ但是本文的目的不在于培养学霸Q而在于让不会(x)汇编的h单看看就能写Z基本能用的汇~程?#8230;…</div><div></div><div>在程序设计中Q我们知道一基本原理:(x)语言高U,一般来讲容易编写,形式z,可移植性强Q效率低……</div><div>反过来,语言低U,难~写Q代码越Ҏ(gu)是又臭又长还看不懂,难ULQ但是效率会(x)很高……</div><div>汇编是比较低的语a?jin),׃其不太好ULQ汇~版本又多种多样</div><div>因此Q本着zdzȝQ到时候不?x)就查手册的原则Q本文不?x)太着重强调语法,语法以intel语法Z……</div><div></div><div>Chapter1Q一些基本知?/div><div>首先QCPU有若q寄存器Q在32位CPU中,形如eaxQebxQecxQedx……64位CPU则ؓ(f)raxQrbx……</div><div>虽然寄存器这个名字很NBQ其实它的本质上是intQؓ(f)?jin)向下兼容的需要,一些老的E序Q也有可能能在新型的CPU上运行(详见DOS老游戏,有的能玩Q有的不能玩Q?/div><div>?4位D例:(x)</div><div>64位寄存器raxQ低32位是eaxQeax?6位是axQax?位叫ahQ低8位叫al……</div><div>CPU只能直接对寄存器q行q算……因ؓ(f)?sh)\l构是那样?#8230;…因此Q所有的操作Q都需要经q寄存器</div><div>譬如赋|(x)A = 1Q实际上?AX = 1; A = AX; 譬如 A = A + BQ应该是 AX = A; AX += B; A = AX; q样</div><div>我是比较不求甚解的,99%功能Q运,判断Q指针)(j){,使用eaxQebxQecxQedx都能搞定……于是׃也就不说别的?#8230;…</div><div></div><div>Chapter2Q汇~的基本语法Q?/div><div>汇编语言大概分ؓ(f)四个D,其中比较需要记住的是代码D和数据D?#8230;…</div><div>用类似高U语a的思\来讲Q数据段用于定义一些全局变量Q代码段用于写程?#8230;…</div><div>来看一个简单的 Hello WorldQ环境:(x)yasmQ?4位)(j)</div><div></div><div>global main </div><div>extern printf </div><div></div><div>section .data </div><div><span style="white-space:pre"> </span>ctrlout   db      '%s', 10, 0 </div><div><span style="white-space:pre"> </span>hw    db      'Hello World', 0 </div><div></div><div>; this is a comment</div><div></div><div>section .text</div><div>main:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlout</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, hw</div><div><span style="white-space:pre"> </span>call <span style="white-space:pre"> </span>printf</div><div>        mov rax, 0</div><div>ret</div><div></div><div>其中Q刚开始global main 表示E序入口Q由于这里直接调用了(jin)Linux的函数printfQ之后需要gcc~译Q所以叫做mainQ如果只使用中断输出的话Q可以搞成_start</div><div>之后extern意义和C++cMQ表C个函数在别处Q叫~译器以Z有就?#8230;…</div><div></div><div>section .data  表示数据D,后面是一些定义,以及(qing)初始?/div><div>注意q里定义的东西类型都像是指针一PctrloutQhw 实际上是地址……</div><div>初始化必L的干净一点,有一ơ调?jin)半天不对,是因?f)一?4位intQ前4位没有初始化?……</div><div></div><div>之后 section .text 表示代码D,q里调用C语言函数Q网上说Q?4位汇~中Q参C递方式有?jin)修改,大概是?~5个寄存器专门保存参数Q如果参数过多,再放入栈Qrax存放栈中的参C?#8230;…我们想printf("%s","Hello World")Q就要调用两个参敎ͼ于是Q我们把W一个参敎ͼ字符串ctrlout的指针movqrdiQhw movqrsiQrax赋gؓ(f)0 Q然后,调用……</div><div>Q实现时Q需要手册自行查阅一下本机怎么搞)(j)</div><div>函数的返回值在raxQ于是return 0</div><div></div><div>然后 yasm -f elf64 XXX.asm</div><div>gcc -o XXX XXX.o</div><div>./XXX</div><div>一个崭新的hello world 出现?#8230;…</div><div></div><div></div><div>Chapter3Q汇~的一些简单指令:(x)</div><div></div><div>׃q是速成教程Q选取一部分指o(h)……要记住,CPU只能直接对寄存器q行q算……</div><div>movQ相当于赋| mov eaxQb  相当于eax = bQ?/div><div>注意Qmov 后面的两个东西至要有一个是寄存?#8230;…</div><div>同时Q和高语言一P不能搞什?mov 10Qeax……</div><div></div><div>addQadd eaxQb 相当于eax+=b</div><div>subQ基本同?#8230;…</div><div>mul || imulQ前面是无符L(fng)乘,后面是有W号的乘Q默认被乘数在AXQ于是指令Ş如:(x)mul BXQ如果有溢出Q则高位溢出到DXQ记得备份DX的东?#8230;…</div><div>div  ||  idivQ前面是无符h除,后面是有W号整除Q默认被除数是DXQ高16位)(j)和AXQ低16位)(j)Q因此,除法之前记得把DX清零Q否则数?x)不?#8230;…</div><div>之后商在AXQ余数在DX</div><div>指o(h)形如Qdiv BX</div><div></div><div>push/popQ每个程序都有栈Q或者是在程序中定义堆栈D,或者用默认栈</div><div>push eaxQ表C把eax放进栈里Qpop ebxQ表C取出栈Ӟ攑֜ebx?#8230;…</div><div>push和pop异常重要Q一个重要作用就是保护寄存器Q譬如DX中有内容Q但是现在要做乘法,没准?x)破坏DXQ见上)(j)Q于是,先PUSH DXQ然后,乘法Q然后POP DXQ又好比你要调用一个函敎ͼ但是寄存器里有有用的信息Q不保证q个函数不会(x)破坏Q于是,把所有寄存器先pushq去Q运行函敎ͼ然后再pop出来Q这是常用技?#8230;…</div><div>另外也可以用来给函数传参敎ͼ传时倒序压入Q用旉序取出,栈,先进后出Q你们懂?#8230;…</div><div></div><div>Chapter4Qif以及(qing)循环</div><div>首先我们要记得,被Dijkstra老爷子骂的一文不值的goto……</div><div>jmp语法和C++里的goto基本一?/div><div></div><div>startQ?/div><div>XXX</div><div>jmp start</div><div></div><div>然后Q汇~没有if thenQ但是有条ggoto</div><div>有个语句叫做cmp</div><div>cmp XQY Q老原则,q两个得有一个寄存器……如果和常数比较,常数必须在后面)(j)</div><div>传说中具体实现是减法……</div><div>q个的效果是可能改变若干标识位的?#8230;…譬如Q?标识Q进位标识,溢出标识……{等……</div><div>然后Q有若干指o(h)</div><div>jl XXQl==lessQ?相当?if (x<y) goto XX; 下同</div><div>jg XXQg==greaterQ?/div><div>jle XXQne==less or equalQ?/div><div>jge XXQge==greter or equalQ?/div><div>jnle XXQn==no->nle==gQ?/div><div>jnge XXQn==no->nge==lQ?/div><div></div><div>有了(jin)if thenQ各U运,我们p做出?amp;&,||的逻辑</div><div>有了(jin)if thenQ我们也能做出@?#8230;…</div><div></div><div>很多的功能就有了(jin)……</div><div></div><div>Chapter5Q实?/div><div></div><div>看看</div><div></div><div>int main() {</div><div>    int a,b,c;</div><div>    input(a);</div><div>    input(b);</div><div>    if (a < b) {</div><div>        c = a;</div><div>    } else {</div><div>        c = b;</div><div>    }</div><div>    print(c);</div><div>}</div><div></div><div>用汇~翻译出来啥P(x)</div><div></div><div>global main </div><div>extern printf </div><div>extern scanf </div><div></div><div>section .data </div><div><span style="white-space:pre"> </span>ctrlout   db      '%lld', 10, 0 </div><div><span style="white-space:pre"> </span>ctrlin    db      '%lld', 0 </div><div><span style="white-space:pre"> </span>_a db 0,0,0,0,0,0,0,0</div><div><span style="white-space:pre"> </span>_b db 0,0,0,0,0,0,0,0</div><div><span style="white-space:pre"> </span>_c db 0,0,0,0,0,0,0,0</div><div></div><div></div><div>section .text</div><div>main:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlin</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, _a</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>scanf</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlin</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, _b</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>scanf</div><div><span style="white-space:pre"> </span>MOV rax, [_a]</div><div><span style="white-space:pre"> </span>CMP rax, [_b]</div><div><span style="white-space:pre"> </span>jl @0</div><div><span style="white-space:pre"> </span>jmp @2</div><div>@0:</div><div><span style="white-space:pre"> </span>MOV rax, [_a]</div><div><span style="white-space:pre"> </span>MOV [_c], rax</div><div><span style="white-space:pre"> </span>jmp @1</div><div>@2:</div><div><span style="white-space:pre"> </span>MOV rax, [_b]</div><div><span style="white-space:pre"> </span>MOV [_c], rax</div><div>@1:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlout</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, [_c]</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>printf</div><div><span style="white-space:pre"> </span>mov rax, 0</div><div>ret</div><div></div><div>Chapter6Q其?/div><div>׃现实生活中,我需要写汇编时候实在是,因此也没啥经?#8230;…管借助手册Q可以对付着写一Ҏ(gu)~代码,但是那是不科学的……Ҏ(gu)来讲Q汇~告诉我们的一些底层的东西更有价|可以在高U语a中有所体现Q譬如一些表辑ּ的写法,可以考虑写的更科学一些,譬如 c = a / b, q = a % bQ记得写?c = a / b; q = a - c * bQ譬如灵zM用switchQ等{?#8230;…</div></div><img src ="http://www.aygfsteel.com/sweetsc/aggbug/368903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">[NKU]sweet</a> 2012-01-26 22:42 <a href="http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>~译原理入门以及(qing)战大作业心得Q?Qlex易入?/title><link>http://www.aygfsteel.com/sweetsc/archive/2012/01/16/368587.html</link><dc:creator>[NKU]sweet</dc:creator><author>[NKU]sweet</author><pubDate>Mon, 16 Jan 2012 05:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2012/01/16/368587.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/368587.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2012/01/16/368587.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/368587.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/368587.html</trackback:ping><description><![CDATA[l于考完?#8230;…说好的日常技术BlogQ很不幸没有实现……不过现在慢慢补也是好?#8230;…<br />q里介绍一下今q的几大大作业之编译原?#8230;…道在这里复?fn)一下相关知?#8230;…<br />~译器的工作分成6步(王老师考试不厚道,q次考的居然不是q?步是?#8230;…而是6步又分成哪两大部?#8230;…不表……Q,词法分析Q语法分析,语义分析Q中间代码生成,代码优化Q代码生?#8230;…<br />词法分析֐思义是认?#8230;…譬如关键字(if then else for int char{等Q,Ҏ(gu)W号Q?-×/{等Q,标识W(变量名,函数名)(j){,以及(qing)可能q回一些错误,譬如有一些奇怪的不认识的东西淯来了(jin)Q中国字Q没定义的标点符L(fng){?#8230;…Q,在处理标识符的时候,需要用一个符可。因为标识符不能像关键字那样一概而论Q要分清楚这是变量名Q函数名Q变量名的话q需要分清楚变量cdQintQcharQdouble{,因此需要用W号表。所谓符可Q实际上数组p?#8230;…<br />Unix提供?jin)一个工P(x)lexQ可以实现用正则表达式来实现词法分析……<br />q个东西版本多种多样Q这里采用linux的flexQ没有其它默认参?#8230;…q样默认生成的是C代码<br />下面提供一个简单例子:(x)单L认出标识W,数字Q以?qing)其?#8230;…<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <br /><span style="color: #008080; "> 2</span> %{<br /><span style="color: #008080; "> 3</span> #include <stdio.h><br /><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">int</span> yywrap();<br /><span style="color: #008080; "> 5</span> %}<br /><span style="color: #008080; "> 6</span> <br /><span style="color: #008080; "> 7</span> D         [0-9]<br /><span style="color: #008080; "> 8</span> L         [a-zA-Z_]<br /><span style="color: #008080; "> 9</span> <br /><span style="color: #008080; ">10</span> %%<br /><span style="color: #008080; ">11</span> {D}+            { printf ("It is a digit ! \n"); }<br /><span style="color: #008080; ">12</span> {L}({L}|{D})*   { printf ("It is a ID! \n"); }<br /><span style="color: #008080; ">13</span> (.)*            { printf ("I don't know! \n"); }<br /><span style="color: #008080; ">14</span> %%<br /><span style="color: #008080; ">15</span> <br /><span style="color: #008080; ">16</span> <span style="color: #0000FF; ">int</span> yywrap() { <span style="color: #0000FF; ">return</span> 1; }<br /><span style="color: #008080; ">17</span> <span style="color: #0000FF; ">int</span> main() {<br /><span style="color: #008080; ">18</span>     yylex();<br /><span style="color: #008080; ">19</span>     <span style="color: #0000FF; ">return</span> 0;    <br /><span style="color: #008080; ">20</span> }<br /><span style="color: #008080; ">21</span> </div><br />前面?%{ %} Q就是按照C语言的规范写一些头文gQ常量,函数定义……<br />之后可以用正则表辑ּ写一些自q定义Q譬如我q里定义?jin)D表示数字QL表示字母<br />然后Q两?%% %% 中间Q要写若q?正则表达?{ q啥q啥 } q样的格式,表示匚w上了(jin)q个Q则做什么什?#8230;… q个?x)从上到下依ơ匹?#8230;…<br />最后,是C函数?#8230;… yywrap()貌似表示是否q有输入Q一直return 1p……<br />~译……首先Q以上代码要存成 XX.l 的lex格式文g……<br />然后 lex XX.l Q会(x)自动生成 lex.yy.c 文g……<br />gcc之即?#8230;…<br /><br />Qdl?#8230;…Q?img src ="http://www.aygfsteel.com/sweetsc/aggbug/368587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">[NKU]sweet</a> 2012-01-16 13:20 <a href="http://www.aygfsteel.com/sweetsc/archive/2012/01/16/368587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库(作业Q)(j)入门指北http://www.aygfsteel.com/sweetsc/archive/2011/12/19/366664.html[NKU]sweet[NKU]sweetSun, 18 Dec 2011 16:00:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/19/366664.htmlhttp://www.aygfsteel.com/sweetsc/comments/366664.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/19/366664.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/366664.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/366664.html 因此q学期还是选了(jin)数据?#8230;…
于是q日在和大作业斗?#8230;…
大作业是大概要写一个能操作数据库的软gQƈ完成一些功?#8230;…
q个软g的话Q用各种手段都可以,听说弟兄们有ASP的,有MFC的,有VB?#8230;…
古h教育我们QLAMP……又看C(jin)ALP用过的一个神宝具Q?a >XAMPP……于是下蝲?jin)XAMPPQ打开虚拟机,一路next安装Q之后运行xampp_ctrlQ你们懂?br />
于是Q输入http://127.0.0.1Q出来网了(jin)……
然后Q修改几个地?#8230;…打开安装文g夹,|页都在那底?#8230;…把原来的index.phpҎ(gu)admin.phpQ然后自己写一个index.phpQ?br />
1 <?php
2 echo "ASS WE CAN!!!";
3 ?>
?#8230;…再输入http://127.0.0.1Q奇q出C(jin)……
然后Q咱们要解决一下IO问题……臛_先画个输入框啥的出来……看看大概懂?#8230;…采取post的方法,把输入的量都作ؓ(f)一个数l,传递给reg.php处理……
 1 <html>
 2 <body>
 3 
 4 <form method=post action="reg.php">
 5 姓名<input type=text name="name"><br>
 6 <input type=submit name=ok value="提交">
 7 </form>
 8 
 9 </body>
10 </html>
有图有真相:(x)


然后Qreg.phpQ连接数据库Qƈd一条:(x)

 1 <?php 
 2
 
 3 #链接数据库,q检查是否成功,输出调试信息
 4 #php的变量名前需?Q无d明就可?/span>
 5 
 6 $link=mysql_connect('localhost','root','');
 7 if(!$linkecho "q接数据库失?;
 8 
 9 #选择数据?/span>
10 mysql_query("use test",$link);
11 
12 #生成命o(h)Q且输出调试信息……|页传来的信息,?x)存在_post数组中,按照下标调用卛_
13 $ctrl = "insert into user(NAME) values('". $_POST["name"] . "')";
14 #echo ($ctrl); echo("</br>");
15 
16 #向用戯中插入一条新的记录,q输出提C?/span>
17 mysql_query($ctrl,$link);
18 
19 #调试信息……
20 $rs = MySQL_query("select * from user");
21 $cnt = MySQL_query("select count(*) from user");
22 $cnt = mysql_fetch_row($cnt);
23 $cnt = $cnt[0];
24 for ($i = 0; $i < $cnt$i ++) {
25     print_r(mysql_fetch_row($rs));
26     echo("</br>");
27 }
28 
29 #关闭数据库链?/span>
30 mysql_close($link);
31 
32 ?>
33 
34 <h1><a href="index.htm">回到首页</span></h1>

xQ物理学的大厦已l徏成,作业差不多可以写?#8230;………

[NKU]sweet 2011-12-19 00:00 发表评论
]]>
工作W记http://www.aygfsteel.com/sweetsc/archive/2011/12/08/365830.html[NKU]sweet[NKU]sweetWed, 07 Dec 2011 19:37:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/08/365830.htmlhttp://www.aygfsteel.com/sweetsc/comments/365830.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/08/365830.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365830.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365830.html感触很多Q都午夜党了(jin)……惛_哪里是哪里吧……

折腾?jin)这么一通,d初步完成?jin),也把Pthread大概?x)用了(jin),收获也很?#8230;…
前半q_(d)Z(jin)在ACM里面万一有点用,我开发了(jin)个java多线E模?#8230;…Q实际技术含量不高)(j)
本次接受到的dQ刚开始也是上java做的Q但是java效率不高Q大安懂的……于是UL到C/C++Q上pthread……
与之前的d相比Q这ơ可不是“{所有线E的case跑完Q主U程输出{案”Q那么轻?#8230;…java是个原生态支持多U程的语aQ而且一个线E一个Q务基本就没有冲突……我这?=_= …… 多线E得讉K一个公qhash?#8230;… 而且Q这个表memory里面q装不下…… 外加C/C++有些东西Q多个线E一L(fng)Q可能就挂了(jin)…… =_= …… 于是 =_= …… M好歹q是磕l绊的搞Z(jin)个可行的Ҏ(gu)……

E序设计语言太重要了(jin)……q是一切的Ҏ(gu)……一个好的程序设计语aQ或者说Q更高一个层U来Ԍ(x)工具Q能够帮助你优雅的完成一些事?#8230;…譬如Q了(jin)解了(jin)MatlabQ或者OctaveQScilab之后Q一些程序就能搞的很漂亮很写?#8230;…与高层次的东西相对的QC语言是根本。pthread、OS、编译,都是M开?#8230;…管不见得要自己动手qԌ底层的东西也要知?#8230;…

本来计划10分钟写完Q但是现在写的似乎有点多?#8230;…单些?#8230;…直奔计划?br />先把大作业刷?#8230;…把课都搞定了(jin)……
增强VIMQ或转型EMACSQ培ȝq种强力~辑器管理工E的能力
多看看C语言Q涉猎一下OctaveQRubyQpython{等……
仔细x今后q啥方向……
偶尔一刷题……

[NKU]sweet 2011-12-08 03:37 发表评论
]]>
pthread学习(fn)W记 IIIhttp://www.aygfsteel.com/sweetsc/archive/2011/12/04/365525.html[NKU]sweet[NKU]sweetSun, 04 Dec 2011 15:31:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/04/365525.htmlhttp://www.aygfsteel.com/sweetsc/comments/365525.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/04/365525.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365525.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365525.html q个时候,我们需要用条件变?br /> 相关Q?br /> 定义一个条件变量:(x)
pthread_cond_t cook_finish;

相关函数Q?br />
pthread_cond_init(&cook_finish,NULL);
pthread_cond_destroy(&cook_finish);
初始化,老规矩,后面那个参数是属?br /> 删除Q老规?#8230;…
pthread_cond_signal(&cook_finish);
让一个线E发Z?/div>

pthread_cond_wait(&cook_finish,&lock); 
让一个线E坐{条件变量的信号……其中的lockq是那个互斥?br /> Z么要用个锁呢……是ؓ(f)?jin)避免一些?zhn)剧情늚发?#8230;…

下面的代码有q么个问题:(x)先是lock上,然后Q坐{信P然后解锁…… 其他的线E,也是lock上,发出信号Q再解锁……
前文教育我们Q互斥锁不能lock两次啊,q是Z么呢……l查询,坐等信号q个函数的实玎ͼ大致是:(x)解锁 -> 坐等 -> 锁上l箋……
所以,大丈夫,大丈?#8230;…
以下代码构造了(jin)q么一个欢乐的场景Q有个吃货,前来坐等吃东西,但是cooker需要工?U,才能产生出来食物……

  1
 #include <pthread.h>
 2 #include <stdio.h>
 3 
 4 int tot = 0;
 5 pthread_mutex_t lock;
 6 pthread_cond_t cook_finish;
 7 
 8 struct node_t {
 9     int data;
10     struct node_t* next;
11 };
12 
13 typedef struct node_t node;
14 
15 void *eater(void *arg) {
16     printf("eater ready!!\n");
17     int * stat = (int*) arg;
18     int i;
19     pthread_mutex_lock(&lock);
20     printf("Waiting the cooker!!!\n");
21     pthread_cond_wait(&cook_finish,&lock);
22     pthread_mutex_unlock(&lock);
23     for (i = 0; i < *stat; i++) {
24         tot --;
25     }
26     printf("eater finish!!\n");
27     return NULL;
28 }
29 
30 void *food(void *arg) {
31     sleep(3);
32     printf("cooker ready!!\n");
33     int * stat = (int*) arg;
34     int i;
35     pthread_mutex_lock(&lock);
36     for (i = 0; i < *stat; i++) tot++;
37     pthread_mutex_unlock(&lock);
38     printf("cook finish!!\n");
39     pthread_cond_signal(&cook_finish);
40     return NULL;
41 }
42 
43 int main() {
44     node tmp = {123, NULL};
45     pthread_t thr[2];
46     void *exit_status;
47     pthread_mutex_init(&lock,NULL);
48     pthread_cond_init(&cook_finish,NULL);
49     int num = 1E8;
50     pthread_create(&thr[0], NULL, &eater, &num);
51     pthread_create(&thr[1], NULL, &food, &num);
52     pthread_join(thr[0],&exit_status);
53     pthread_join(thr[1],&exit_status);
54     printf("%d\n",tot);
55     pthread_mutex_destroy(&lock);
56     pthread_cond_destroy(&cook_finish);
57     return 0;
58 }
59 


[NKU]sweet 2011-12-04 23:31 发表评论
]]>pthread学习(fn)W记 IIhttp://www.aygfsteel.com/sweetsc/archive/2011/12/03/365439.html[NKU]sweet[NKU]sweetFri, 02 Dec 2011 17:08:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/03/365439.htmlhttp://www.aygfsteel.com/sweetsc/comments/365439.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/03/365439.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365439.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365439.html来解册样一个多U程׃n数据的问题:(x)譬如跑一个计数的E序QN个线E都在生答案,然后解要存在一个int?#8230;…
如果不加处理Q会(x)有这么个BugQ现在内存里面数字是NQ线E每ơ把它+1的过E需要先读,把它复制到寄存器Q+1Q再存回N?#8230;…
如果多线E的话,很可能是Q线E?dNQ线E?dNQ线E? N += 1Q线E? N += 1Q线E?存回去,U程2存回?#8230;…
也就是说Q数错了(jin)…………
怎么办呢……我们要用一个互斥锁Q获得了(jin)锁的U程现在才能q活Q没有的只能{待
定义一个锁Q?br />
pthread_mutex_t lock;
相关的函敎ͼ(x)
pthread_mutex_init(&lock,NULL); 初始化,后一个是属性,默认可以是NULL
pthread_mutex_lock(&lock);      加锁
pthread_mutex_unlock(&lock);    解开?/div>
pthread_mutex_destroy(&lock);   deleteQ?……大概p么理解吧……Q掉?br />
代码Q?/div>

 1 #include <pthread.h>
 2 #include <stdio.h>
 3 
 4 pthread_mutex_t lock;
 5 int tot = 0;
 6 
 7 void *entry_point(void *arg) {
 8     int * stat = (int*) arg;
 9     int i;
10     for (i = 0; i < *stat; i++) {
11         pthread_mutex_lock(&lock);
12         tot ++;
13         pthread_mutex_unlock(&lock);
14     }
15     return NULL;
16 }
17 
18 int main() {
19     pthread_t thr[2];
20     void *exit_status;
21     pthread_mutex_init(&lock,NULL);
22     int arr[2]; arr[0] = 10000; arr[1] = 20000;
23     pthread_create(&thr[0], NULL, &entry_point, &arr[0]);
24     pthread_create(&thr[1], NULL, &entry_point, &arr[1]);
25     pthread_join(thr[0],&exit_status);
26     pthread_join(thr[1],&exit_status);
27     printf("%d\n",tot);
28     pthread_mutex_destroy(&lock);
29     return 0;
30 }
31 


[NKU]sweet 2011-12-03 01:08 发表评论
]]>define 学习(fn)体会(x)http://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.html[NKU]sweet[NKU]sweetThu, 01 Dec 2011 17:59:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.htmlhttp://www.aygfsteel.com/sweetsc/comments/365345.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365345.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365345.html 于是今天老图借了(jin)本书Q学?fn)一?#8230;…
来看一下我最头疼的define……
define的作用:(x)
一是直接定义一个东?#8230;…cM标记
譬如Q?br />
1 #ifndef test
2 #define test
3 /*
4 balabalabala.
5 */
6 #endif
刘JX老师在大一CQ+课上教育我们Q写头文件一定要加上q么个东?#8230;…Z么呢……
再提一下include的事?#8230;… #include<XXXX>Q实际上是直接把XXXX整个文gCOPY?jin)进?#8230;…
如果出现q样的情况:(x)
1 #include <set>
2 #include <map>
我们知道QCpp?map 实际上是?set 做的Qmap的头文g里肯定有一?#include <set>Q那么,相当于setq个文g在这D늨序里面出C(jin)两次……
如果没有ifndefq套的话Q相当于set中的代码重复贴了(jin)两次Q就_大事了(jin)……
代码W一Difndef test 代表Q如果没有define testQ则执行下面的那D,?nbsp;define testQ然后balabalaQ最后endifQ下ơ再看到q段代码的时候,ifndef test Q此时会(x)发现test已经defineq了(jin)Q直接endifQ中间balabala的代码不?x)重复两?#8230;…

二是直接定义一?#8230;…怎么说呢Q类似替换规则的东西……

譬如Q直接定义常量:(x)
1 #define MAXN 10000
q个实际上就是直接在E序~译之前Q将里面的MAXN都替换成10000
预先定义一些常量,好处大家都懂Q避免程序内部太多的“magic number”Q增强可L,也便于修?#8230;…q里相当于直接替换,貌似C的数l,定义的时候不能用int做下标,const int也不行,只能通过q个Ҏ(gu)Q用立即?#8230;…

譬如Q给一些东西改个名字:(x)
  1 #include <stdio.h> 
  2 #define Q scanf 
  3  
  4 int main() { 
  5     int a; 
  6     Q("%d",&a); 
  7     printf("%d\n",a); 
  8     return 0; 
  9 } 

q里有一些玄机:(x)
1Q?g是因为没有{义?所以不能胡?#8230;…
譬如Q?define USEMATH #include <math.h> 是不能达到预期效果的……
2Q如果这一行太长,可以用\表示和下一行连h…… 貌似q个'\'也没转义Q?#define BACKSLASH \ 也是不行?#8230;…

譬如Q可以定义一些简单的函数Q?br />#define max(a,b) ((a) > (b) ? (a) : (b))
某种意义上这比template NB...
q样Qint c Q?max(a,b); p动替换成 int c Q?(a) > (b) ? (a) : (b)); ?br />此处有一个技巧:(x)有的时候,׃需要用大括h实现q个"函数"Q但是,由define直接替换知道Q这个替换出来,相当于{/*balabala*/};q样Q语法是错的……
于是怎么办呢……׃可以?do {/*balabala*/} while(0) q样的Ş式,l开q个问题…… 在上ơOS大作业上׃都见C(jin)……
此处q有两个玄机Q一是千万记得要加括?#8230;…Z么呢……
譬如Q?br />#define mul(a,b) a * b
看着挺好Qmul(1,2 + 3)出事了(jin)…… 直接替换出来Q是 1 * 2 + 3Q就错了(jin)……
正确Ҏ(gu)是:(x)#define mul(a,b) ((a) * (b))Q万无一?#8230;…
另一个玄机是避免++,--之类的,譬如
#define sqr(a) ((a) * (a))
sqr(a++)Q如果sqr是真的函数的话,计算出没有问?#8230;…但是define?x)忠实的l你替换?(a++) * (a++))……怎么加的不重要,l果׃是你想的?#8230;…

最后有两个用法Q一个是#Q??x)将你作?#8220;函数”?#8220;参数”传入的东西{化ؓ(f)字符Ԍ一个是...Q作用一看便知:(x)
 1 #include <stdio.h>
 2 #define max(a,b) ((a) > (b) ? (a) : (b))
 3 #define PRINT() printf(__VA_ARGS__)
 4 #define debug(x) do { \
 5     PRINT(#x);  \
 6     PRINT(" = %d\n",(x)); \
 7     } while (0)
 8 
 9 int main() {
10     int a,b;
11     scanf("%d%d",&a,&b);
12     debug(a);
13     debug(b);
14     debug(a + b);
15     debug(max(a,b));
16     return 0;
17 }


[NKU]sweet 2011-12-02 01:59 发表评论
]]>
pthread学习(fn)W记http://www.aygfsteel.com/sweetsc/archive/2011/11/30/365156.html[NKU]sweet[NKU]sweetTue, 29 Nov 2011 16:15:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/11/30/365156.htmlhttp://www.aygfsteel.com/sweetsc/comments/365156.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/11/30/365156.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365156.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365156.htmlPDF教材传送门

前两天n心疲惫,现在得到?jin)回复,于是乎工作还是要l箋?#8230;…
q日从ACM界退休下来之后,在做q行计算的东?#8230;…
上周胡搞?jin)一下,l果Ҏ(gu) TMD 搞不出来……军_静下心来Q阅M下入门手册,指南之类?/div>
原文的作者假讑֒们在UNIX操作pȝ下,于是也没有提安装配置的事?#8230;…
本h?ArchLinux 也自带了(jin)pthread.h Q直接像stdio.h一L(fng)接引用就?/div>
~译时要加参敎ͼ(x)-lpthread 或?-pthread ……
两个函数Q?br />
pthread_create()Q创Z个线E?/div>
W一个参数pthread_t *是类似线EID一L(fng)东西Q经q查?lt;bits/pthreadtypes.h>的定义,pthread_t是long……Q?/div>
W二个参数是U程的属性,使用NULL表示默认属性,׃现在使用NULL好
W三个参数是让这个线E执行的函数Q这个函数的定义是void *(*__start_routine) (void *)Q也是_(d)参数和返回值都是voidQ,q是个很好的做法Q我们可以用l构体指针,来传递和q回多个?/div>
W四个参敎ͼ是W三个函数的void*参数

pthread_join()Q等待某个线E结?/div>
W一个参敎ͼ(x)pthread_tQ线EIDQ第二个参数Qvoid*Q用来保存该U程执行的函数返回?/div>
q两个函数return 0表示正常Q否则表C有Bug……
׃来看一下P5的习(fn)题:(x)开10个线E,每个U程hello world五次Q此时我自己发挥?jin)一下,加了(jin)一个返回|(x)

 1 #include <pthread.h>
 2 #include <stdio.h>
 3 
 4 const int THREADS = 10;
 5 
 6 void *func(void *arg) {
 7     int i = 0;
 8     int *in = (int*) arg;
 9     for (i = 0; i < 5; i++) {
10         printf("Hello World (thread %d)\n",*in);
11     }
12     return in;
13 }
14 
15 int main() {
16     pthread_t thread_ID[THREADS];
17     void *exit_status;
18     int ID;
19     int arg[THREADS];
20     for (ID = 1; ID <= THREADS; ID++) {
21         arg[ID] = ID;
22         pthread_create(&thread_ID[ID], NULL, func, &arg[ID]);
23     }
24     for (ID = 1; ID <= THREADS; ID++) {
25         pthread_join(thread_ID[ID], &exit_status);
26         printf("Thread %d end !!\n", *(int*)exit_status);
27     }
28     return 0;
29 }

E序q行正常输出?jin)若qhello worldQƈ且正帔R?br />p出可以看出,ȝE输出的thread XX end Q和?0个线E的Hello world是穿插着q行的,q没有连l?#8230;…
?fn)题q有一,_(d)(x)这个程序弄到别的机器上看看效果Q我猜是不是用在单核机器上,效果?x)不一样呢……
打开虚拟机,q行l果表明Q他??条打?#8230;…可以大概猜到Q多核才能发挥多U程的作用啊……
我试?jin)试把pthread_join的部分注释了(jin)是什么效?#8230;…l果q行CE序l束return 0Q其他线E也消失?#8230;…

2.2章讲?jin)这么一件事情:(x)q回值的时候,千万不能犯一个?zhn)剧的错误Q?br />在C/C++里我们知道,函数要返回一个数l,怎么办呢……应该new出来一个ƈ且返回,如果直接在函数内?nbsp;int arr[1000]; return arr; q样的话Q返回的指针是指向栈I间的,而arr指针指向的那块内存在函数退出的时候直接就没有?#8230;…
正确的方法是int *arr = new int[1000]; return arr; q样数组是开在内存里的,在函数执行完毕之后,不会(x)被回?br />作者提醒我们,不是有个函数要返回void* ?#8230;… 道理一P不能在这个地方犯?#8230;…

今天先写到这?#8230;…未完待箋……


[NKU]sweet 2011-11-30 00:15 发表评论
]]>上网Q读书,W记 Ihttp://www.aygfsteel.com/sweetsc/archive/2011/10/09/360233.html[NKU]sweet[NKU]sweetSat, 08 Oct 2011 16:20:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/10/09/360233.htmlhttp://www.aygfsteel.com/sweetsc/comments/360233.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/10/09/360233.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/360233.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/360233.html最q要做点什?#8230;…于是上网找找资料……
From stanford CSQ?br />
Panda (for Provenance and Data) is a new project whose goal is to address some limitations in existing provenance systems.
PandaQ(来源和数据的~写Q,是一个新目Q他的目标是Q解决一些现有的来源pȝQ?Q)(j)的局限?br />
this short paper describes our overall plans for Panda, including:
q个短Paper描述?jin)我们对Panda大局的规划,包括
a model that fully integrates data-based and process-based provenance;
一个完全结合了(jin)Z数据和基于进E的来源模型Q?Q?Q)(j)
a set of built-in operators for exploiting provenance after it has been captured;
一个ؓ(f)?jin)在捕获来源之后q行扩展的嵌入式操作W集?br />an ad-hoc query language over provenance together with data;
一个来?-> 数据的点对点的操作语a
supporting the range from fine-grained to coarse-grained provenance;
支持范围从细U理到粗U理的来?br />and addressing optimization problems involving eager versus lazy evaluation and data caching.
处理包括Q需求和单分析的q、数据缓冲等最优化问题

好吧……
研究研究什么叫 provenance systemsQ?br />
找了(jin)个文章,Layering in Provenance SystemsQ在q玩意里面分层?……Q?br />
In digital systems, provenance is the record of the creation and modification of an object.
在数字系l中Q来源是一个东西创造和修改的记?br />Provenance provides answers to questions such as:
记录提供诸如此类问题的答案:(x)
How does the ancestry of two objects differ?
Z么这两个东西的祖先不一P
Are there source code files tainted by proprietary software?
有源代码被私有Y件污染了(jin)Q吗Q?#8230;…Q?br />How was this object created?
q个东西是怎么刉出来的

g有点理解 来源 是个啥了(jin)……

正在理解 provenance systems ?#8230;…


[NKU]sweet 2011-10-09 00:20 发表评论
]]>2011ACM北京|络预选赛 F Machine scheduling (BUPT 216)http://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.html[NKU]sweet[NKU]sweetSun, 18 Sep 2011 14:56:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.htmlhttp://www.aygfsteel.com/sweetsc/comments/358932.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.html#Feedback3http://www.aygfsteel.com/sweetsc/comments/commentRss/358932.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358932.html 首先Q这个题要分成两个部分解冻I(x)
W一部分Q从n个东襉K面取出r个,每个间距臛_?k Q?~K不行Q?~K Q?1行)(j)
W二部分Q将qr个东西分成至多ml,可以有空l?br /> W二部分貌似好久之前搞OI的时候干q?#8230;…贴过来:(x)
N球放在M个盒子里Q求共有多少U放?br />

但是?个不同的条g QN个球是否相同QM个盒子是否相同,是否允许有盒子空着

球和?/span>

盒和?span>

I盒

情况?span>

有区?span>

有区?span>

有空?span>

mn

有区?span>

有区?span>

无空?span>

MQ?span>sQ?span>n,mQ?span>

有区?span>

无区?span>

有空?span>

S(n,1)+s(n,2)+…+s(n,m),n>=m

S(n,1)+s(n,2)+…+s(n,n),n<=m

有区?span>

无区?span>

无空?span>

S(n,m)

无区?span>

有区?span>

有空?span>

C(n+m-1,n)

无区?span>

有区?span>

无空?span>

C(n-1,m-1)

无区?span>

无区?span>

有空?span>

F(m,n)

无区?span>

无区?span>

无空?span>

F(m,n-m)

然后Q其中的F(m,n)貌似是当时写q的一个DPQS(M,N)是第二类stirling?#8230;…
递推公式Q?br />
1 int S(int n,int m) {
2     if (n == m || m == 1return 1;
3     return m * S(n - 1, m) + S(n - 1, m - 1);
4 }
W一部分Q可以看作这么一个生成函数的相关问题Q由于每个东西之间都隔了(jin)>=KQ?的一D距,因此一个可行解可以看作Q长度ؓ(f)KQK + 1QK + 2的棍子r Q?1个(我们认ؓ(f)每个子的头是我们取的点Q,拼接成长度ؓ(f)Len的一个大D,之后再堵上一个,是一个Len Q1的可行解……
而r - 1Ҏ(gu)子,拼成长度为Len 的可行解数目Q就?X^K + X^(K + 1) + X^(K + 2) + .....) ^ (r - 1)Q这个多式Q展开之后QX^Len前面的pL……
不过……׃数据范围Q直接搞是不成的……
于是提取Q变形:(x)X^(K * (r - 1))  * (1 + X + X^2 + X ^3 +....)^(r - 1)
然后再变形:(x)X^(K * (r - 1))  * (1/(1 - x))^(r - 1)……
然后参照Matrix67大神的日志,展开后面那项Q?br />
1/(1-x)^n=1+C(n,1)x^1+C(n+1,2)x^2+C(n+2,3)x^3+...+C(n+k-1,k)x^k+...
我们知道Q要求长度ؓ(f)len的可行数目,也就是要X^Len前面的pLQ然后,׃前面提取出来?jin)一个K * (r - 1)Q也是d面找len - K * (r - 1) 的pL……
也就是说Qo(h)pow = len - K * (r - 1)Q答案就是C(r - 1 + pow - 1, pow)……
不过q还没完Q因为咱们要拼成的长度是lenQ而ȝ长度是NQ需要乘上这个长度len的开头位|的可能?#8230;…
另外q需要特D处理:(x)׃在处理的时候,是先用r - 1个拼接成长度为Len的一个大D,再堵上最后一?#8230;…当r == 1需要特?#8230;…
代码Q?br />
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 typedef long long Long;
 5 const Long MOD = 1000000007;
 6 
 7 Long F[1010][1010];
 8 Long C[2010][2010];
 9 Long S(int n,int m) {
10     if (n == m || m == 1return 1LL;
11     if (F[n][m] > 0return F[n][m];
12     return F[n][m] = (m * S(n - 1, m) % MOD + S(n - 1, m - 1)) % MOD;
13 }
14 void init() {
15     for (int i = 0; i <= 2000; i++) {
16         for (int j = 0; j <= i; j++) {
17             if (j == 0) C[i][j] = 1;
18             else C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;
19         }
20     }
21 }
22 int n,r,k,m;
23 
24 int main() {
25     memset(F,0xff,sizeof(F));
26     init();
27     while (scanf("%d%d%d%d",&n,&r,&k,&m) > 0) {
28         if (r == 1) {printf("%d\n",n); continue;}
29         Long ans = 0;
30         for (int i = 1; i <= m && i <= r; i++) {
31             ans = (ans + S(r,i)) % MOD;
32         }
33         Long tmp = 0;
34         for (int len = k * (r - 1); len < n; len++) {
35             int left = n - len;
36             int pow = len - k * (r - 1);
37             // r > 1 !!
38             tmp = (tmp + left * C[r - 1 + pow - 1][pow]) % MOD;
39         }
40         ans = ans * tmp % MOD;
41         printf("%lld\n",ans);
42     }
43     return 0;
44 }


[NKU]sweet 2011-09-18 22:56 发表评论
]]>
旁门左道W二章之障碍?/title><link>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html</link><dc:creator>[NKU]sweet</dc:creator><author>[NKU]sweet</author><pubDate>Wed, 06 Apr 2011 04:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/347696.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/347696.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/347696.html</trackback:ping><description><![CDATA[原文Q? JavaU程Q新特征-障碍器,q是该作者的原创作品Q允许{载,转蝲时请务必以超链接形式标明文章 <a target="_blank" style="text-decoration:underline">原始出处</a> 、作者信息和本声明。否则他追I法律责?#8230;…<br /> <br /> Hmm……好怕怕,转个日志都会(x)被追I法律责?#8230;…<br /> <br /> 不过要感谢原文的兰州Q在兰州的文章帮助下Q今天突然发C(jin)灉|Q改造了(jin)攚w兰州的代码……<br /> 在ACM中的作用Q我觉得可以q样Q?br /> 1Q对于单文g多case的题Q开多线E,每个U程跑一个caseQ之后再调用收尾的Q务输?br /> 2Q对于单case且可以ƈ行的情况Q开若干U程处理之后Q调用收ևC最后处理、输?br /> <br /> 以下是一个简单的求和代码Q实际效果,在我的双核CPU上用时大概减了(jin)一?br /> <br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.BrokenBarrierException;<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.CyclicBarrier;<br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Test {<br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[] ans;<br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">        ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">];<br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> now </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">            now </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (now </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">        System.out.println(now);<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; ">        CyclicBarrier cb </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> CyclicBarrier(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> MainTask());<br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">18</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">19</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args) {<br /> </span><span style="color: #008080; ">20</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Test().run();<br /> </span><span style="color: #008080; ">21</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">22</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; ">23</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">24</span> <span style="color: #0000FF; ">class</span><span style="color: #000000; "> MainTask </span><span style="color: #0000FF; ">implements</span><span style="color: #000000; "> Runnable {<br /> </span><span style="color: #008080; ">25</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; ">26</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">27</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">4</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">28</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> Test.ans[i]) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">29</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">30</span> <span style="color: #000000; ">        System.out.println(ans);<br /> </span><span style="color: #008080; ">31</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">32</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; ">33</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">34</span> <span style="color: #0000FF; ">class</span><span style="color: #000000; "> SubTask </span><span style="color: #0000FF; ">extends</span><span style="color: #000000; "> Thread {<br /> </span><span style="color: #008080; ">35</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> pos;<br /> </span><span style="color: #008080; ">36</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> left;<br /> </span><span style="color: #008080; ">37</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> right;<br /> </span><span style="color: #008080; ">38</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> CyclicBarrier cb;<br /> </span><span style="color: #008080; ">39</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> mod </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">40</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">41</span> <span style="color: #000000; ">    SubTask(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> pos,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> left,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> right,CyclicBarrier cb) {<br /> </span><span style="color: #008080; ">42</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.pos </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pos;<br /> </span><span style="color: #008080; ">43</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.left </span><span style="color: #000000; ">=</span><span style="color: #000000; "> left;<br /> </span><span style="color: #008080; ">44</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.right </span><span style="color: #000000; ">=</span><span style="color: #000000; "> right;<br /> </span><span style="color: #008080; ">45</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.cb </span><span style="color: #000000; ">=</span><span style="color: #000000; "> cb;<br /> </span><span style="color: #008080; ">46</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">47</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">48</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; ">49</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">50</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> left; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> right; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">51</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> mod;<br /> </span><span style="color: #008080; ">52</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">53</span> <span style="color: #000000; ">        Test.ans[pos] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ans;<br /> </span><span style="color: #008080; ">54</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">55</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br /> </span><span style="color: #008080; ">56</span> <span style="color: #000000; ">            cb.await();<br /> </span><span style="color: #008080; ">57</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (InterruptedException e) {<br /> </span><span style="color: #008080; ">58</span> <span style="color: #000000; ">            e.printStackTrace();<br /> </span><span style="color: #008080; ">59</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (BrokenBarrierException e) {<br /> </span><span style="color: #008080; ">60</span> <span style="color: #000000; ">            e.printStackTrace();<br /> </span><span style="color: #008080; ">61</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">62</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">63</span> <span style="color: #000000; ">}</span></div> <img src ="http://www.aygfsteel.com/sweetsc/aggbug/347696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">[NKU]sweet</a> 2011-04-06 12:36 <a href="http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>来个旁门左道…?/title><link>http://www.aygfsteel.com/sweetsc/archive/2011/03/21/346699.html</link><dc:creator>[NKU]sweet</dc:creator><author>[NKU]sweet</author><pubDate>Mon, 21 Mar 2011 11:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2011/03/21/346699.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/346699.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2011/03/21/346699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/346699.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/346699.html</trackback:ping><description><![CDATA[今天看了(jin)看java的ƈ?#8230;…写了(jin)一个实验品……<br /> 照书抄的Q无解释,看看估计懂?#8230;…<br /> 但是把这个用在做题中?x)怎样呢?…… =_=<br /> <br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.Executors;<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.ExecutorService;<br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">class</span><span style="color: #000000; "> SumTask </span><span style="color: #0000FF; ">implements</span><span style="color: #000000; "> Runnable {<br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> Left;<br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> Right;<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> ans;<br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> MOD </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">199999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">    SumTask(</span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> L,</span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> R) {<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">        Left </span><span style="color: #000000; ">=</span><span style="color: #000000; "> L;<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">        Right </span><span style="color: #000000; ">=</span><span style="color: #000000; "> R;<br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Left; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> Right; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> MOD;<br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        System.out.println(ans);<br /> </span><span style="color: #008080; ">18</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">19</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; ">20</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">21</span> <span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> mul {<br /> </span><span style="color: #008080; ">22</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String args[]) {<br /> </span><span style="color: #008080; ">23</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> MOD </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">199999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">24</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">25</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">26</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> MOD;<br /> </span><span style="color: #008080; ">27</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">28</span> <span style="color: #000000; ">        System.out.println(ans);<br /> </span><span style="color: #008080; ">29</span> <span style="color: #000000; ">        SumTask task1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SumTask(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">30</span> <span style="color: #000000; ">        SumTask task2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SumTask(</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">31</span> <span style="color: #000000; ">        SumTask task3 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SumTask(</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">32</span> <span style="color: #000000; ">        SumTask task4 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SumTask(</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">33</span> <span style="color: #000000; ">        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">4 threads Start!!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">34</span> <span style="color: #000000; ">        ExecutorService runner </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Executors.newFixedThreadPool(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">35</span> <span style="color: #000000; ">        runner.execute(task1);<br /> </span><span style="color: #008080; ">36</span> <span style="color: #000000; ">        runner.execute(task2);<br /> </span><span style="color: #008080; ">37</span> <span style="color: #000000; ">        runner.execute(task3);<br /> </span><span style="color: #008080; ">38</span> <span style="color: #000000; ">        runner.execute(task4);<br /> </span><span style="color: #008080; ">39</span> <span style="color: #000000; ">        runner.shutdown();<br /> </span><span style="color: #008080; ">40</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">41</span> <span style="color: #000000; ">}</span></div> <br /> <img src ="http://www.aygfsteel.com/sweetsc/aggbug/346699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">[NKU]sweet</a> 2011-03-21 19:16 <a href="http://www.aygfsteel.com/sweetsc/archive/2011/03/21/346699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>贴个裸模李쀦…求引玉…?/title><link>http://www.aygfsteel.com/sweetsc/archive/2011/02/23/344972.html</link><dc:creator>[NKU]sweet</dc:creator><author>[NKU]sweet</author><pubDate>Wed, 23 Feb 2011 06:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2011/02/23/344972.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/344972.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2011/02/23/344972.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/344972.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/344972.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.math.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 4</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 5</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Main {<br /> </span><span style="color: #008080;"> 7</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String args[]) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {<br /> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Prob().solve();<br /> </span><span style="color: #008080;"> 9</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">10</span> <span style="color: #000000;">}<br /> </span><span style="color: #008080;">11</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">12</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Prob {<br /> </span><span style="color: #008080;">13</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> solve() </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {<br /> </span><span style="color: #008080;">14</span> <span style="color: #000000;">        MyReader in </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> MyReader();<br /> </span><span style="color: #008080;">15</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">16</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">17</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> debug(Object<img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />x) {<br /> </span><span style="color: #008080;">18</span> <span style="color: #000000;">        System.out.println(Arrays.deepToString(x));<br /> </span><span style="color: #008080;">19</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">20</span> <span style="color: #000000;">}<br /> </span><span style="color: #008080;">21</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">22</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> MyReader {<br /> </span><span style="color: #008080;">23</span> <span style="color: #000000;">    BufferedReader br </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> BufferedReader (<br /> </span><span style="color: #008080;">24</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> InputStreamReader (System.in));<br /> </span><span style="color: #008080;">25</span> <span style="color: #000000;">    StringTokenizer in;<br /> </span><span style="color: #008080;">26</span> <span style="color: #000000;">    String next() </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {<br /> </span><span style="color: #008080;">27</span> <span style="color: #000000;">        </span><font class="Apple-style-span" color="#0000ff">while</font><span style="color: #000000;"> (in </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;"> </span><span style="color: #000000;">||</span><span style="color: #000000;"> </span><span style="color: #000000;">!</span><span style="color: #000000;">in.hasMoreTokens()) {<br /> </span><span style="color: #008080;">28</span> <span style="color: #000000;">            in </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> StringTokenizer(br.readLine());<br /> </span><span style="color: #008080;">29</span> <span style="color: #000000;">        }<br /> </span><span style="color: #008080;">30</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> in.nextToken();<br /> </span><span style="color: #008080;">31</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">32</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> nextInt() </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {<br /> </span><span style="color: #008080;">33</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> Integer.parseInt(next());<br /> </span><span style="color: #008080;">34</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">35</span> <span style="color: #000000;">}<br /> </span></div><img src ="http://www.aygfsteel.com/sweetsc/aggbug/344972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">[NKU]sweet</a> 2011-02-23 14:32 <a href="http://www.aygfsteel.com/sweetsc/archive/2011/02/23/344972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ڽ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ű</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʱ</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֺ</a>| <a href="http://" target="_blank">֬</a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">͸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">͸</a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯɽ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">հ</a>| <a href="http://" target="_blank">Դ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>