|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,程序|技能<Pstyle="TEXT-INDENT:2em">Java平台从入手下手就被计划成为多线程情况。在你的主程序实行的时分,别的功课如碎片搜集和事务处置则是在背景举行的。<Pstyle="TEXT-INDENT:2em">实质上,你能够以为这些功课是线程。它们恰好是体系办理线程,可是不管怎样,它们是线程。线程使你可以界说互相自力的功课,相互之间互不搅扰。体系将互换这些功课进或出cpu,如许(从内部看来)它们好象是同时运转的。<Pstyle="TEXT-INDENT:2em">在你必要在你的程序中处置多个功课时,你也能够利用多个历程。这些历程能够是你本人创立的,你也能够利用体系线程。你举行这些多功课处置,要利用几个分歧的类或接口:<Pstyle="TEXT-INDENT:2em">java.util.timer类<Pstyle="TEXT-INDENT:2em">javax.swing.timer类<Pstyle="TEXT-INDENT:2em">thread类<Pstyle="TEXT-INDENT:2em">runnable接口<Pstyle="TEXT-INDENT:2em">关于复杂的功课,一般必要反复的,你可使用java.util.timer类告知它“每半秒钟做一次”。注重:年夜多半体系例程是利用毫秒的。半秒钟是500毫秒。<Pstyle="TEXT-INDENT:2em">你但愿timer完成的义务是在java.util.timertask实例中界说的,个中运转的办法包括要实行的义务。这些在hi类中举行了演示,个中字符串“hi”反复地被显现在屏幕上,直到你按enter键。<Pstyle="TEXT-INDENT:2em">- importjava.util.*; publicclasshi { publicstaticvoidmain (stringargs); timer.cancel(); } }
复制代码 <Pstyle="TEXT-INDENT:2em">javaruntimeenvironment事情的体例是只需有一个线程在运转,程序就不加入。如许,当作废被挪用,没有别的线程在运转了,则程序加入。有一些体系线程在运转,如碎片搜集程序。这些体系线程也被称为背景线程。背景线程的存在不影响运转情况被封闭,只要非背景线程包管运转情况不被封闭。<Pstyle="TEXT-INDENT:2em">javax.swing.timer类与java.util.timer类的事情体例类似,可是有一些不同必要注重。第一,运转的功课被actionlistener接口的完成来界说。第二,功课的实行是在事务处置线程外部举行的,而不象java.util.timer类是在它的内部。这是很主要的,由于它干系到swing组件集是怎样计划的。<Pstyle="TEXT-INDENT:2em">假如你不熟习swing,它是一组能够被java程序利用的图形组件。swing被计划程被称为单线程的。这意味着对swing类外部内容的会见必需在单个线程中完成。这个特定的线程是事务处置线程。<Pstyle="TEXT-INDENT:2em">如许,比方你想改动label组件的笔墨,你不克不及仅仅挪用jlabel的settext办法。相反,你必需确认settext挪用产生在事务处置线程中,而这恰是javax.swing.time类派的上用处的中央。<Pstyle="TEXT-INDENT:2em">为了申明这第二种情形,上面的程序显现一个增添的计数器的值。美半秒钟计数器的数值增添,而且新的数值被显现:<Pstyle="TEXT-INDENT:2em">- importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; publicclasscount { publicstaticvoid main(stringargs) { finalstringurlstring=args; finalstringmessage=args; threadthread1=newthread() { publicvoidrun() { try { urlurl=newurl(urlstring); urlconnectionconnection= url.openconnection(); inputstreamreaderisr=new inputstreamreader( connection.getinputstream()); bufferedreaderreader= newbufferedreader(isr); intcount=0; while(reader.read()!=-1) { count++; } system.out.println("sizeis:" +count); reader.close(); }catch(malformedurlexceptione) { system.err.println("badurl:" +urlstring); }catch(ioexceptione) { system.err.println ("i/oproblems"); } } }; thread1.start(); runnablerunnable=newrunnable() { publicvoidrun() { while(true) { system.out.println(message); try { thread.sleep(500); }catch(interruptedexceptione) { } } } }; threadthread2=newthread(runnable); thread2.start(); try{ system.out.println ("pressentertostop"); system.in.read(newbyte); }catch(ioexceptione) { system.out.println("i/oproblems"); } system.exit(0); } }
复制代码 由于有多种体例来处置线程,你选用哪一种手艺取决于你和你面对的前提。要成为一个无效的java编程职员,只管你一般不用进修java编程言语的一切内容和中心库,可是线程是一个破例。你越早懂得线程怎样事情和怎样利用线程,你将越早懂得java程序怎样事情和交互。
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点: |
|