`
tmrp
  • 浏览: 43669 次
  • 性别: 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)...

    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

    Java Lambdas and Parallel Streams

    After this, the author demonstrates how streams can be parallelized in a very simple way―within certain limits, no knowledge about the thread management is needed. Nevertheless, some basic elements ...

    微软内部资料-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 ...

    微软内部资料-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...

    北京中科信软solaris培训

    What the signal facility is for and how a signal is delivered 10. File Systems The vnode interface layer to a file system Four fields in a directory entry Advantages of the 4.3 BSD file system ...

    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...

    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 ...

    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 ...

    Nodejs_Succinctly

    driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” I suggest you also read the “What is ...

    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 ...

    Advanced Apple Debugging & Reverse Engineering v0.9.5

    It’s time to take a deeper dive into what happens when a function is called from an assembly standpoint by exploring some “stack related” registers as well as the contents in the stack. ...

Global site tag (gtag.js) - Google Analytics