`
tmrp
  • 浏览: 44725 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

what is a thread

阅读更多
thread到底是什么,在程序中到底表示什么?

Simply put, a thread is a program's path of execution. Most programs written today run as a single thread, causing problems when multiple events or actions need to occur at the same time. Let's say, for example, a program is not capable of drawing pictures while reading keystrokes. The program must give its full attention to the keyboard input lacking the ability to handle more than one event at a time. The ideal solution to this problem is the seamless execution of two or more sections of a program at the same time. Threads allows us to do this.

Multithreaded applications deliver their potent power by running many threads concurrently within a single program. From a logical point of view, multithreading means multiple lines of a single program can be executed at the same time, however, it is not the same as starting a program twice and saying that there are multiple lines of a program being executed at the same time. In this case, the operating system is treating the programs as two separate and distinct processes. Under Unix, forking a process creates a child process with a different address space for both code and data. However, fork() creates a lot of overhead for the operating system, making it a very CPU-intensive operation. By starting a thread instead, an efficient path of execution is created while still sharing the original data area from the parent. The idea of sharing the data area is very beneficial, but brings up some areas of concern that we'll discuss later.
分享到:
评论

相关推荐

    Avro数据存储astore.zip

     what_is(age);  what_is(http_get);  var http_get_result = http_get.apply("http://localhost:8080/ping");  java.lang.Thread.sleep(1000);  what_is(http_get_result.value());  what_is(http_post)...

    java英文笔试

    If thread safety is not a concern, `ArrayList` is usually the preferred choice for performance reasons. - **Capacity Increment**: Both `ArrayList` and `Vector` have different capacity increment ...

    java面试题英文版及其答案

    7. What is a Java package, and why is it used?Answer: A Java package is a namespace mechanism that organizes related classes and interfaces into modules. Packages help avoid naming conflicts, provide ...

    微软内部资料-SQL性能优化2

    A reference to an invalid page (a page that is not in your working set) is referred to as a page fault. Assuming the page reference does not result in an access violation, a page fault can be either ...

    lpc1768_rt-thread-3.0.3+usb VSP

    【描述】"rt-thread-3.0.3 + USB virtual serial port What character is sent, what character is returned" 描述的是rt-thread系统中USB虚拟串行端口的功能。当用户发送一个字符时,该功能会确保这个字符能够正确...

    微软内部资料-SQL性能优化3

    Intent Lock is the term used to mean placing a marker in a higher-level lock queue. The type of intent lock can also be called the multigranular lock mode. An intent lock indicates that SQL Server ...

    操作系统课设实验报告一

    (d) When the forked thread executes SWITCH() function for the first time, to what address the CPU returns when it executes the last instruction ret of SWITCH()? What location in the program that ...

    Java Network Programming 3rd Edition By Elliotte Rusty Harold 2004

    What Is a Multicast Socket? Section 14.2. Working with Multicast Sockets Section 14.3. Two Simple Examples Chapter 15. URLConnections Section 15.1. Opening URLConnections Section 15.2. ...

    BobBuilder_app

    Pages in a b+tree are usually implemented as a list or array of child pointers and so while finding and inserting a value is a O(log k) operation the process actually has to move children around in ...

    vlc资料_multicat

    but it wants to remain agnostic of what is transported, so in case of files the said clock is stored to an auxiliary file (example.aux accompanies example.ts) while recording. Other inputs ...

    Multithreading with C# Cookbook(PACKT,2ed,2016)

    Starting from learning what a thread is, we guide you through the basics and then move on to more advanced concepts such as task parallel libraries, C# asynchronous functions, and much more. ...

    DotNet面试题

    2. What is a Windows Service and how does its lifecycle differ from a "standard" EXE? 3. What is the maximum amount of memory any single process on Windows can address? Is this different than...

    Learning.NET.High.Performance.Programming

    You will also see what Big Data is, and how to architect a Big Data solution to manipulate large datasets. Finally, you will learn how to launch and analyze a profile session and execute tests ...

    C# Deconstructed(Apress,2014)

    C# Deconstructed answers a seemingly simply question: Just what is going on, exactly, when you run C# code on the .NET Framework? To answer this question we will dig ever deeper into the structure of ...

    Java.Threads.and.the.Concurrency.Utilities.1484216997

    The primary audience is Java beginners and the secondary audience is more advanced Java developers who have worked with the Thread APIs and the Concurrency Utilities. Table of Contents Part I: Thread...

    Shader Forge v1.38

    Shader Forge is a node-based shader editor, aiming to push the visual quality of Unity to new heights, giving you the artistic freedom of shader creation in a visual and intuitive way - no code ...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    A decent rule of thumb is to not inline a function if it is more than 10 lines long. Beware of destructors, which are often longer than they appear because of implicit member- and base-destructor ...

Global site tag (gtag.js) - Google Analytics