`
- 浏览:
589765 次
- 性别:
- 来自:
杭州
-
1.java 同步和异步的简单理解
同步就是许多线程同时用一个资源啥的哦,一个在用别的就要等,异步就相反了,可以不用等待
下面这是人家的话:
同步:发送一个请求,等待返回,然后再发送下一个请求
异步:发送一个请求,不等待返回,随时可以再发送下一个请求
同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。
异步则是可以提高效率了,现在cpu都是双核,四核,异步处理的话可以同时做多项工作,当然必须保证是可以并发处理的。
这些都是对的。
同步和异步最大的区别就在于。一个需要等待,一个不需要等待。
比如广播,就是一个异步例子。发起者不关心接收者的状态。不需要等待接收者的返回信息
电话,就是一个同步例子。发起者需要等待接收者,接通电话后,通信才开始。需要等待接收者的返回信息
2.认识Thread的start和run
1) start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
2) run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
以下是对Java线程相关知识点的详细说明: 1. **线程的创建与执行** - 创建线程有两种方式:继承`Thread`类或者实现`Runnable`接口。继承`Thread`直接重写`run()`方法,而实现`Runnable`接口则需要提供一个包含业务...
了解线程池的概念也是Java多线程编程中的一个重要知识点。线程池是一种多线程处理形式,它将线程和任务的概念分离开来,能够有效管理线程资源,减少线程创建和销毁的开销,提高程序性能。Java中可以通过Executors类...
多线程 1. 什么是线程: 线程就是程序中单独顺序的流控制。线程本身不能运行,它只能用于程序中。 2. 什么是多线程: 多线程则指的是在单个程序中可以同时运行多个不同的线程执行不同的任务. 说明: 线程是程序内...
对Java线程总体知识的梳理,主要描述了关键知识点,可以梳理一下思路!
Java多线程知识点整理.pdf
多线程在我们的开发应用中也是回很常用的,希望里面的内容能够可以帮助到你们解决掉你们想要的问题,这是我所期望看到的
"Java多线程-知识点梳理和总结-超详细-面试知识点" Java多线程是Java编程语言中最基本也是最重要的概念之一。多线程编程可以提高程序的执行效率、改善用户体验和提高系统的可扩展性。但是,多线程编程也存在一些...
### 多线程知识总结 #### 一、线程基础概念 **线程状态:** 在探讨多线程之前,我们需要了解线程的基本状态转换。一个典型的线程生命周期包括以下几个阶段: 1. **Start(启动):** 当线程被创建后调用`start()`...
下面将详细介绍标题和描述中涉及的线程相关知识点。 1. **创建线程**: - 使用`CreateThread`函数可以创建一个新的线程。这个函数需要指定线程函数的入口地址、参数、初始堆栈大小等信息。 - 也可以使用`_...
多线程技术知识点总结
以下是基于这个源代码的线程相关知识点的详细说明: 1. **线程创建**:在`CWorkerThread`构造函数中,使用`CreateThread`函数创建了一个新的线程。`CreateThread`函数接受多个参数,包括线程安全属性、初始堆栈大小...
根据提供的文件信息,我们可以从中提炼出关于线程管理和信号量操作的相关知识点。下面将详细解释这些知识点,并尽可能地提供丰富的信息。 ### 线程基础知识 #### 什么是线程? 线程是操作系统能够进行运算调度的...
以下是对标题和描述中提到的线程相关知识点的详细解释: 1. **Interrupt方法**:在.NET中,`Thread.Interrupt()`方法用于中断线程,但它可能会抛出`ThreadInterruptedException`。因此,调用此方法时需要捕获异常,...
多线程知识点.xmind
本文主要围绕Linux下C语言实现的多线程编程进行知识点总结,涉及线程与进程的区别、多线程的优势、Pthreads API以及线程安全和死锁预防。 首先,线程和进程是操作系统中两种基本的执行单元。线程是进程内部的执行流...
java 多线程知识点思维导读
以下是根据题目内容整理的一些Java线程相关知识点: 1. **线程睡眠**:`Thread.sleep()`方法用于使当前线程进入睡眠状态,参数单位为毫秒。例如,`sleep(10000)`表示线程将休眠10秒。 2. **线程创建方式**:Java...
以下是一些关键的线程相关知识点: 1. **创建线程**:你可以通过实例化`Thread`类并传递一个委托(如`ThreadStart`或`ParameterizedThreadStart`)来创建一个新的线程。委托通常指向包含线程执行逻辑的方法。 2. *...
通过shell调用`CreateProcess`函数启动应用程序,这会创建一个"进程核心对象",并分配一个4GB的虚拟地址空间,接着加载程序代码和数据到这个地址空间,同时创建一个主线程,由这个主线程执行程序的入口点——`...
以下将详细介绍标题和描述中提到的多线程相关知识点。 1. **多线程的概念**: 多线程是指在一个进程中同时运行多个独立的执行序列,每个序列称为一个线程。这些线程共享同一进程的资源,如内存空间,但它们各自...