您的位置:首页 > 其它

关于回调函数和多线程的一些问题

2016-04-13 12:24 232 查看
1,为什么要使用多线程?

  除了提高处理器的利用效率,在当前线程等待的时间内可以去做另外的事情,不至于使处理器处于空闲状态,还有一些情况下也要使用。

比如,代码的异步调用问题:

一个java程序的界面,需要一个费时的操作,那么这个时候需要另外启动一个线程,否则的话,当前界面则需要一直等待这个费时操作的结束,界面上的一些工作将不得不停止,界面处于阻塞状态,这时候,可以启动一个新的线程,将这个费时操作放在新线程中去做,为什么这样就可以解决?因为线程之间是相互独立的,主线程和子线程之间也是这样,所以,这样可以避免主界面阻塞状态。

一个例子:客户端服务器通信的小Demo,当点击服务器界面的按钮,启动服务器时,服务器将一直监听相对应的端口号,如果没有客户端的持续连接,这个方法将处于阻塞状态,这时候,界面就处于一个阻塞状态,按钮得不到弹起回复,其他一些事情也将停止,比如关闭界面的操作也将不起作用。所以这时候的解决办法就是重新启动一个线程去处理这个操作。

2.这里我想到回调函数,当在A类一个方法中处理一个费时操作时,调用另外类B来处理,B处理完后,回调A中的方法,当然A中需要B的引用,(调用B中方法使用),A调用B中方法需要传入自己的引用(这个过程可以理解为注册),后面B可以回调A中的回调方法

具体可以参考下面的链接:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: