日期:2014-05-20  浏览次数:20734 次

求高手点拨一个“Java的世界观”问题...
高手,您好:
    如果做SWing的话..
    我在进行“一个JFrame窗口中的广告信息”,是写在一个JFram类的代码中的...
    如果我点击了“JFrame中的一个广告链接”的话...
    在这个时间点上,是很有可能在弟我写的这个IM工具上,出现“多位好友的消息”,批量到达的...
    这个场景,从代码运行的后台来分析:
    “用户点击了我的JFrame”:我的JFrame类在运行.
    “用户的信息批量到达”:我的IM的edt线程在运行.
    咱们在进行聊天的过程中,经常看的是:
    我们在点击了腾讯的“某一个迷你首页上的广告链接”之后,这个动作,是与整个“edt窗口中的消息可能批量的到达”是:
    完全独立的.
    弟我认为:
    这里的“后台效果”,应该需要JFrame窗口和“文件传输功能”的窗口,是:
    完全一致的需要相同的“多线程设计”的...
    但是,为什么会有:
    整个系统,“文件传输功能”,需要进行Thread的处理.
    但是JFrame窗口,就不用进行这个办法的处理...
    这个现象,是否与:
    处理机分配给每一个进程的焦点,是:
    在每一个“单线程进程”的每一个“对应的被执行的类文件中”是“从上到下”,“从左到右”,依次扫描执行的每一句代码,这个“背景理论”,相互矛盾的...呢...?
    上面的“点击JFrame窗口”与“edt线程在同一时间点不断涌上来消息”,并且,edt线程不用进行“多线程的Java处理”,的现象,应该怎么用“多线程的理论来解释”...?
    希望得到高手的尽可能详细的解答...
    静候高手的点拨!!
    一百分奉上!!
                                                                一位日日夜夜向着理想奔跑的筑梦者
                                                                2013年9月30日早晨2点39分
                                                           
java 多线程 线程 进程 thread

------解决方案--------------------

    我就是希望能够知道:
    为什么在做Swing工具的时候,edt线程“必须占据一个线程”,传输文件线程“也需要占据一个线程”..
    但是JFrame窗口,却不用进行“多线程的Java代码处理”...?
     多线程的应用主要是面向用户(其它程序模块、其它线程、其它进程、I/O设备,宏观点说也包括人),为了提供对这些用户相对公平和相对及时的服务,记着是相对。就像你去吃快餐,要等菜,你总会不断问,快点快点,我的菜来了没,老板总会说,快快了,马上来了。这就是一个叫做“响应”的机制,但实际上,老板只有一个厨师。所以多线程是一种面向应用的技术。对于计算机来说,他处理每个线程的指令,对他来都都是一样的。就像厨师,在厨房,菜总是一个一个地做,他才不管是谁的菜。
    EDT线程是一个事件分发线程,EDT线程就像一个快递员,JFrame就像一个房子或者信箱,他只负责把信件送到每个人的房子或者信箱,他不能等每个人把信件都看完了,再送下一家。至于信件的内容(如何处理这个通知),就每个户主自己的事了,与这个快递员无关。这也是一种响应机制。

    并且,如果从“"处理机轮询每一个任务"的方式进行的执行”的角度来进行认识的话...
    这里的“进行线程”的设计的必要条件,是不是:
    需要进行“同一时间点”的计算呢...?
    CPU进行“多线程程序”的CPU调度的时候,本身对于“多线程程序”,应该就是“进行轮询”的方式处理的...
    如果对于“同一时间点”,的真正真相是:
    线程,进程,都是进行“CPU轮询处理”的话...
    那么,进行“多线程的设计的必要性”,是不是就会“不是那么必要了”....?
  上面已经说了,多线程的设计是一种类似于面向相对公平的快速响应。理论上一个线程处理的有效指令数量肯定是最大的,因为少了线程调度的工作。 但实际上不是这样,如果一个线程一直长期占用线程,这是不合理的,就像这是一个特权社会,总有人需要特权,比如进程的优先级,系统进程一般需要较高的优先级,这是一种管理的概念。就像领导开会总是飞机飞来飞去,你出差总是火车公交车(有点哪啥了啥……只是例子)。 而从技术上,由于CPU运算速度足够快,比如每隔0.001毫秒,向你发一张图片,你就感觉,他一直在向你发图片,于是,你就可以看视频了。根据CPU的能力,他可以给另外若干人发同样的图片,这样,电脑上可以播放多路视频了,如果CPU还有足够的能力给喇叭发数据,于是又有了声音,这就叫简单的多媒体。
    :我用线程也可以进行“问题的解决”,用进程也可以....?

线程和进程从你理解的技术角度,这种CPU分享的方式都是可以的。 只不过一个进度包括若干线程。这都是一种计算机交辉的一种“管理”的概念。 一个进程代表一方面的业务处理,而线程代表这个业务中的具体模块,类似这个概念。

    那么,支撑整个Java设计师进行“某一个功能采用进程还是线程”的“判断条件”,是什么...?
一般一个Java Web应用,都是一个Java虚拟机,一般是一个进程。你问这个问题有点看不懂

    这里的“软件工程中的Java语言对于线程和进程的真正施工的选择判断条件”,是什么...?

不知道哪里出的问题,感觉像是什么软件工程考试的吧。

    希望得到高手尽快的回复..
    一百分奉上!!
                                                             一位日日夜夜向着理想奔跑的筑梦者
                                                             2013年9月30日早晨2点53