`
wjingwen
  • 浏览: 9822 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

线程总结

阅读更多


 1、程序:利用编程语言开发的一个工具软件,静态的,在没有启动运行之前只是磁盘中的一个普通文件。

 2、进程:当一个程序进入内存就变成了进程,即进程是处于运行过程中的程序,具有一定的独立功能。

       特征:独立性,动态性,并发性。

3、线程:被称为轻量级的进程,指运行过程中的调度单位,线程在程序中是独立的,并发执行的流。线程可以创建和撤销,具有就绪、阻塞和运行三种基本状态。

     1、单线程:只有一条的执行走向线程,效率比较低,没有充分利用CPU。

     2、多线程:多于一条的执行走向线程,共享内存,可以实现多任务。

          例:访问网页时,应用服务器可以同时响应多个用户请求。

               一段代码就好像是一座独木桥,任何时刻,只能有一个人在桥上走。

               一张火车票只能卖给一位乘客。

4、进程与线程的区别与联系:

       1、进程和线程都是一个控制流程,但是一个进程通常对应一个程序,而一个程序可以由多个不同的线程构成。 

       2、线程是进程中的实体,一个程序运行,至少有一个进程,一个进程里可以包含多个线程,但至少要包含一个线程。 5、为什么使用多线程?

      1、进程之间不能享用内存,但线程之间可以共享内存。

      2、系统创建进程需要重新分配系统资源,用多线程实现多个任务并发比进程效率高。

      3、java中内置了多线程功能的支持,简化了java的多线程编程。

6、java线程的模型

     1、抢占式调度模型:许多线程处于等待状态,但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态,或另一个具有更高优先级的线程变成可运行状态。

     2、java线程调度器支持不同优先级线程的抢先方式,但本身不支持相同优先级线程的时间片轮换,但是如果系统支持,java可以做到。

7、java线程优先级:java 提供了10个优先级,默认为0-9,但这些优先级需要操作系统的支持。不同操作系统上优先级并不相同,也不能很好地和java的10个优先级对应。优先级高的线程会获得较多的执行机会,但是优先级低的线程也可以先执行。

8、主线程:其他线程的运行必须要通过主线程来触发,由主线程开始,由主线程结束,可控制其他线程。

9、建立线程:

     1、继承Thread类:定义Thread类的子类,并重写该类的run方法,该run方法的方法体就是代表了线程需要完成的任务;创建Thread类子类的实例;用线程对象的start方法来启动该线程。

     优缺点:编写简单;但继承了Thread类,不能在继承其他类。

     2、实现Runnable接口:Runnable适合多个相同程序代码的线程去处理同一资源的情况。实现Runable接口的实现类,并重写该接口的run方法;创建Runable实现类的实例,并以此实例作为Thread类的目标来创建Thread类的目标创建Thread对象,该Thread对象才是真正的线程对象。

     优缺点:实现了Runnable接口,还可以继承其他类,适合多个线程来处理同一个资源的情况;编程相对复杂。

     3、以匿名内部类创建:在一个方法中创建线程,当方法被调用时,线程启动。

10、如何知道线程是否已经结束

     1、run方法执行完成,线程正常结束。

     2、线程抛出一个未捕获的Exception或Error。

     3、直接调用线程的结束方法,容易导致死锁。

     isAlive方法:测试某条线程是否已经死亡,当线程处于创建,死亡两种状态时,该方法返回false

     join()方法:调用这个方法的主线程,等待加入的子线程执行完成。

11、可以利用线程来完成一个小球运动的小程序,附图:

  • 大小: 5.1 KB
2
4
分享到:
评论
2 楼 wjingwen 2011-08-20  
pujia12345 写道
多线程不是提高处理效率的,而是解决并行的!楼主学术虽有然不精。
还有,在多核处理器上多线程才有最大优势

多线程这方面我学的确实不好,谢谢您的评论,让我对多线程又多了些了解!
1 楼 pujia12345 2011-08-01  
多线程不是提高处理效率的,而是解决并行的!楼主学术虽有然不精。
还有,在多核处理器上多线程才有最大优势

相关推荐

    C#.net同步异步SOCKET通讯和多线程总结2[参照].pdf

    C#.net 同步异步 SOCKET 通讯和多线程总结 本文旨在总结 C#.net 中的同步异步 SOCKET 通讯和多线程编程,涵盖服务端和客户端的实现细节。 一、服务端实现 服务端使用 System.Net 和 System.Net.Sockets 命名空间...

    windows多线程总结

    【Windows多线程总结】 Windows操作系统提供了一套完整的API来支持多线程编程,使得开发者可以在同一进程中同时执行多个线程,实现并发处理任务。本文将深入探讨Windows多线程编程的基本概念、线程同步、线程池以及...

    JAVA多线程总结

    【JAVA多线程总结】 Java 多线程是Java编程中的关键特性,它允许程序同时执行多个任务,提高系统的效率和响应性。本篇总结涵盖了Java多线程的基础概念、创建与启动、线程调度、同步与协作以及新特性。 **一、Java...

    C#.net同步异步SOCKET通讯和多线程总结

    C#.net同步异步SOCKET通讯和多线程总结 C#.net同步异步SOCKET通讯和多线程总结是指在C#.net环境下实现的同步异步套接字通信和多线程编程的总结。套接字(Socket)是tcp/ip网络协议接口,内部定义了许多的函数和例程...

    java多线程总结(一)

    ### 总结 Java多线程提供了强大的并发处理能力,开发者可以通过继承`Thread`类或实现`Runnable`接口来创建和管理线程。正确使用`start()`方法而非`run()`方法是确保线程正确启动的关键。理解Java多线程的工作原理和...

    Java线程总结教程

    ### Java线程总结教程知识点详解 #### 一、操作系统与多线程概念 - **多任务与分时操作系统**:现代操作系统(如Windows、Linux)能够实现多任务处理,即在用户看来似乎多个应用程序在“同时”运行。实际上,这是...

    C++多线程总结[归纳].pdf

    C++多线程总结 本文档对C++多线程编程进行了总结,介绍了三种创建线程的方法:CreateThread函数、AfxBeginThread函数和_beginthread()/_beginthreadex()函数,同时对线程的管理和终止进行了详细的讲解。 ...

    Java线程总结.pdf

    总的来说,Java线程总结的知识点涵盖了线程的基本概念、创建与管理、生命周期、同步机制、线程间通信以及线程的活跃性问题。理解和掌握这些知识点对于开发高效、稳定、并发的Java应用程序至关重要。

    线程总结笔记

    ### 线程总结笔记——基于Linux环境下的线程控制与同步 #### 一、引言 本篇“线程总结笔记”主要针对Linux环境下多线程编程中的关键概念进行了整理与归纳,尤其是针对线程同步的问题进行了深入探讨。通过一个具体...

    c#多线程总结文档.ppt

    c# 多线程总结

    MFC 多线程总结

    在Windows应用程序开发中,MFC(Microsoft Foundation Classes)框架提供了对多线程的支持,使得开发者可以构建更加复杂的并发系统。MFC中的线程分为两类:工作者线程和用户界面线程,它们各自有不同的特性和用途。 ...

    Java并发编程实践(java concurrency in practice)pdf (java多线程总结.ppt)

    配合`JAVA多线程总结.ppt`,你可以得到一个更直观和简洁的概览,快速回顾和掌握上述关键知识点。虽然中文版翻译可能存在不足,但原版英文书籍通常能更准确地传达作者的意图和细节,值得深入阅读。

    C#dotnet同步异步SOCKET通讯和多线程总结

    C#dotnet同步异步SOCKET通讯和多线程总结

    java多线程总结

    本文将深入探讨Java多线程的相关知识点,包括线程的创建、线程的状态、同步机制以及线程安全问题。 1. **线程的创建** Java提供了两种创建线程的方式: - **继承Thread类**:自定义类继承Thread类,并重写run()...

    我总结的Java线程总结

    Java线程是并发编程的核心部分,它允许程序在同一时间执行多个任务,极大地提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。 1. 继承`Thread`类: 当创建...

    JAVA线程总结,包含线程池,显示使用线程实现异步编程,基于JDK中的Future实现异步编程,JDK中的FutureTask等

    JAVA线程总结,包含线程池,显示使用线程实现异步编程,基于JDK中的Future实现异步编程,JDK中的FutureTask等

    C++多线程总结

    本文将对C++中三种常见的线程创建方法进行总结,并讨论线程同步的相关知识。 1. 使用 `CreateThread` 函数生成的线程 - **函数原型**:`HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD ...

    MFC多线程总结.doc

    MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序开发,它提供了对Windows API的封装,包括多线程支持。在MFC中,多线程分为两类:工作者线程(Worker Thread)和用户界面线程...

Global site tag (gtag.js) - Google Analytics