Spider 继承Runnable疑惑

发布于 2021-11-27 14:25:43 字数 245 浏览 848 评论 10

@黄亿华 你好,想跟你请教个问题:webmaigc中的Spider设计的时候impliments Runnable ,为什么在使用的时候,也就是main方法中却调用的run()方法,能不能不impliments Runnable。希望你能够在百忙之中抽出一点时间替我解答疑惑,谢谢啦!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

好听的两个字的网名 2021-12-01 14:39:32

所以我就有疑问呀,Sipder在调用的时候使用的是run而不是start

倾城泪 2021-12-01 14:38:31

@刘小宸 调用run的不应该是你,而是JVM里面的C++代码,这是个系统内的回调。就好比 菜单是给厨房厨师看的,它来处理菜单,你只需要给菜单上写你要什么菜,然后叫一下服务员,叫服务员就好比start,开始给你做菜这个业务。菜单是你写的,你只需要等待底层(厨师)执行完你要做的事儿就成。要是还不懂,建议你先理解一下什么是回调方法,真心的。

筱果果 2021-12-01 14:26:05

你看过 start和run方法的源码吗?run方法仅仅是一个普通的方法,你调用这个方法就和普通方法调用无异;
而start方法内部将当前线程加入一个线程组表示该线程获得启动权的,然后调用了一个start0方法,这个方法是native的是底层c语言调用的,用来回调run方法。所以run方法不是给用户调用的,而是给系统调用的,用户只需要在run中定义好要做的事,系统不管你要做什么 他只管执行run

鹤舞 2021-12-01 13:28:39

这个是线程的特点

怎言笑 2021-12-01 12:44:41

1) start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。 ...

梅窗月明清似水 2021-12-01 09:34:42

回复
那这就是说直接调用run就不是多线程啦!

眼眸 2021-12-01 05:11:02

@刘小宸 差不多吧

浅沫记忆 2021-12-01 01:46:26

其实我想说既然是 implements Runnable,,为何main方法不是使用start()方法,而是run()方法
@黄亿华
@ccc_clk

私藏温柔 2021-11-30 18:18:53

其实他想说既然是 implements Runnable,,为何main方法不是使用start()方法,而是run()方法

浅沫记忆 2021-11-29 17:57:52

用Runnable,只是用这个强调入口在这里而已。你的疑惑是什么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文