建立你的第一个java多线程程序:html
public class Creat100Threads { /** * 建立一百个线程 * @param args */ public static void main(String[] args) throws InterruptedException { for(int i=0;i<100;i++){ new Thread(new Runnable() { public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } } }
运行代码后 多了100个线程 能够看到 程序确实实现了线程。java
多线程的概念:若是一个程序容许两个或以上的线程,那么它就是多线程程序。多线程市值在单个进程中运行多个线程。程序员
比喻你和室友同住一间房web
多线程实际例子:抢火车票
若是各个任务相互独立 互不影响 则不须要多线程。
但绝大多数场景不一样的任务 是相互耦合影响的,这时候就须要多线程。编程
如上图 在EVENT调用后 有一段等待时间 电脑是不会作其余事情的 直到结果返回前,此时电脑资源被白白的耗费着。安全
异步就不一样了在发送一个请求后在服务器响应前 电脑又去处理其余请求了。 就至关于你烧白开水 同步的话你就守在水壶面前什么也不干 直到水壶烧开 开关跳掉 但我相信平时你坑定不会这么作 更多的是异步 烧开水时你去干别的事等 烧开 等电源跳掉 你听到了 再去取。
服务器
同步:同步异步这里指的是被调用者(也就是服务器)的行为,而不是请求方的行为。在没有获得结果这钱,服务端就不返回任何结果。
异步:调用在发出以后,服务端马上返回,告诉调用方”我收到你的请求了,我会处理的“。
再打个比方 你去借书 问老板有没有这本书老板说 我帮你找找 而后过了一小时你就去问老板 书有没有找到 这时同步的一种思想 与此相对的是 当你去问老板的时候老板说 我先帮你找找 你留个电话找到了我再打电话给你这就至关于异步 回调了你的电话。网络