socket的多线程中 start和run

来源:4-3 编程实现基于 UDP 的 Socket 通信之客户端

单行道上

2017-02-11 14:48

为什么调用的是.start()方法?明明写的.run()方法,而且调用run方法也可以正常使用

写回答 关注

2回答

  • 长安An
    2017-03-23 23:28:56
    已采纳

    这是线程的使用方面的知识。run()方法里面的叫线程体,是在这个线程需要执行的具体逻辑,而start()方法是启动线程。我们调用start()方法启动这个线程,然后系统会自动调用run()方法去执行里面的逻辑。如果我们不调用start(),而调用run(),的确可以运行run()方法里面的逻辑,但是那是在当前线程执行的,没有新的线程被建立,也就不叫多线程了。你应该补充一下线程方面的基础知识。

    单行道上

    非常感谢!

    2017-04-06 19:32:13

    共 1 条回复 >

  • 风待葬i
    2017-02-12 11:13:19

    从字面意思就可以理解,start就是开始,run就是运行。就好比一个机器,start就是一个开关,而run就是开关打开过后的运行效果,你可以通过打开开关来运行它,也可以直接运行它。不过我不清楚直接运行会不会有多线程的作用,你可以亲自试试。

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125012 学习 · 590 问题

查看课程

相似问题