您好,欢迎光临本网站![请登录][注册会员]  
文件名称: omnithreadlibrary.pdf
  所属分类: Delphi
  开发工具:
  文件大小: 4mb
  下载次数: 0
  上传时间: 2019-07-08
  提 供 者: chunya*******
 详细说明:omnithreadlibrary.pdfTable of contents Credits Introduction Formatting Conventions Learn more Advertisement Release notes 1Introduction to Multithreading 1.1 Dos and Don't's of Multithreading 1.1. 1 Reading and Writing Shared Data 1.1.2 Modifying Shared Data 1.1.3 Writes Masquerading as reads 2.Introduction to OmniThreadLibrary 2.rEquirements 2. 2 License 2.3 Installation 2.3.iNstalling Design Package 2.4Why Use OmniThreadLibrary? 2.5 Tasks ys. Threads 2.6Locking vS Messaging 2.mEssage Loop Required 2.7. 1 OmniThreadLibrary and Console 2.7.2 Omni ThreadLibrary Task Started from another Task 2.7.3 OmniThreadLibrary Task Started from a TThread 2. 8 TOmnivalue 2. 8. 1 Datd access 2.8.2- Type Testing 2.8.3 Clearing the Content 2.8. oPerators 2.8.5 Using with Generic Types 28.6 Array acces 2. 8. hAndling Records 2. 8.8 obiect Ownership 2.8.9 Working With Tvalue 2.8.10 Low-level methods 2.9 TOmni valueobi 2.10 Fluent interfaces 3. High-level multithreading 3. 1 Introduction 3.1.1 A Lifecycle of an Abstraction 3.1.2 Anonymous Methods, Methods and procedures 3.1.3 Pooling 3.2 Blocking collection 3.2.1 1OmniBlocking Collection 3.2.2 Throttling 3.3 Task Configuration 3.4 Async 3.4.1 Handling Exceptions 3.5 Async/Await 3.6 Future 3.6.1 IOmniFuture Interface 3.6.2 Completion Detection 3. 6.3 Cancellation 3.6.4 Handling Exceptions 3.6.5 Examples 3. Join 3.7.1 IOmniParalleljoin interface 3.7.2 IOmnijoin State Interface 3.7.3 Cancellation 3.7. 4 Handling Exceptions 3.8 Parallel Task 3.8.1 IOmniParallelTask interface 3.8.2 Example 3.8.3 Handling Exceptions 3. 8.4. Examples 3.9 Background Worker 3.9.1 Basics 3.9.21OmniBackgroundWorker Interface 3. 9.3 Task initialization 3.9.4 Work Item Configuration 3.9.5 Work item interface 3.9.6E dupes 3.10 Pipeline 3.10.1 Background 3.10.2 Basics 3.10.3 1OmniPipeline Interface 3. 10.3. Example 3.10.4 Generators, Mutators, and Aggregators 3. 10.5 Throttling 3.10.6 Parallel Stages 3,10.eXceptions 3.10.8 Example: 3.11 For 3. 11.11OmniParallelSimple loop interface 3.11.iTerating over an array 3. 11.3 Examples 3.12 For each 3.12.1 Cooperation 3. 12.2 Iterating over.. 3. 12.2.1 2: Number Ranges 3. 12.2.2.. Enumerable collections 3. 12.2.3 Thread-safe enumerable collections 3. 12.2.42.. Blocking Collections 3. 12.2.5:.. Anything 3. 12.3 Providing Extemal Input 3.12. 4 1OmniParallelloon Interface 3. 12.5 Preserving Output Order 3,126△ gregation 3.12.7 Cancellation 3. 12. 8 Task initialization and finalization 3. 12.9 Handling Exceptions 3.12.10 Examples 3.13 Fork/Join 3.13.1 IOmniForkjoin Interface 3.13.2 1OmniCompute Interface 3.13. 1OmniCompute<'T> Interface 3.13.4 Exceptions 3. 13. Examples 3.14Map 3. 14. 11OmniParallclMapper interfacc 3.15 Timed task 3.15.1 1OmnilimedTask interface 4. LOW-level multithreading 4.1LOW-level For the Impatient 4.2 Four ways to create a task 4.3 IOmniTask Control and iomnitask interfaces 4.4 Task Controller needs an owner 4.5 Communication Subsystem 4.6 Processor groups and NUMA nodes 4.tHread Pooling 4.7.1 Execution flow 4.7.2 IOmniThreadPool interface 4.7.3 Task exit code 4.7. 4 Monitoring Thread Pool Operations 4.7.5 Processor groups and NUMa nodes 4. 8 Lock-free collections 4. 8. 1 Bounded stack 4.8.2 Bounded queue 4.8.3 Message Queue 4. 8. DYnamic Qucuc 4.8.5 Observing Lock-free Collections 4.8.5. Examples 4.8.6 Benchmarks 4.9 Event monitor 4.10 Simple Tasks 4,10,1Name 4.10.2 UniqueID 4.10.3 Parameters 4.10.4 Termination 4.10.5 ExitCode 4.10.6 Exceptions 4.10.7 Sending Messages to a Task 4.10.8. Receiving Messages from a Task 4. 10.9 ChainTo 4.10.10 Join/ Leave 4.10. 11 Monitor With/ Remove monitor 4.10.12 Enforced 4.10.13 Unobserved 4.10. 14 Cancellation Token cancel with 4.10.15 Lock/WithLock 4.10.16 With Counter 4.10.17 SetPriority 4. 10.18 SctQucueSizc 4.11 TOmniWorker tasks 4.11.1 WaitForlnit 4.11.2Task 4.11.3 Receiving Messages 4.11.4 Registercomm 4. 11.5 Invoke 4.11.6 Windows message apC Processin 4.117 Timers 4. 11. 8 Terminate when 4.11.9 UserData 4.12 Task groups 4.13 IOmniTask Interface 4.13.1 Name and id 4.13.2 Parameters 4.13.3 Termination 4.13, 4 Exit status 4,13. eXceptions 4.13.6 Communication 4.13.7 Timers 4. 13.rEgister WaitObiect 4. 13.9 CancellationToken 4.13.10Lock 4.13.11 Counter 4.13. 12 Processor groups and NUMA nodes 4. 13.13 Internal and obsolete functions 5. Synchronization 5.1 Critical Sections 5.1.1 IOmniCriticalsection 5.1.2 TOnics 5.1.3 Locked 5.1.3.wHy Not Usc TMonitor? 5.2 TOmniMRE W 5.3 Cancellation token 5.4 Waitable value 5.5 Inverse Semaphore 5. 6 Initialization 5. 6.1 Pessimistic Initialization 5.6.2 Optimistic Initialization 5.7TWaitFor 5.8 TOmnlLockManager 5.9TOmnisingleThreadUse Checker 6. Miscellaneous 6.1 TOmniTwo Way Channel 6.2 TOmni value container 6.3 TOmniCounter 6.4TOmniAlignedInt32 and TOmniAlignedInt64 6.5 TOmniRecordWrapper 6. 6 TOmnirecord 6.7 IOmniAutoDestroyObiect 6.8 IOmnilntegerset 6. 9 Environment 6.9.1 IOmniAffinity 7. How-to 7. 1 Background File Scanning 7.2 Async/Await 7.3 Web download and database storage 7. 4 Parallel For with Synchronized Output 7.5 Using taskIndex and Task Initializer in Parallel For 7.6 Background Worker and List partitioning 7.7 Parallel data production 7.8 Building a Connection Pool 7. B.1 From Theory to Practice 7.8.2 Running the Demo 7.9 Quick Sort and Parallel Max 7.9.1 QuickSort 792 Parallel maⅹ 7.10 Parallel search in a tree 7.11 Multiple Workers with Multiple frames 7. 11.1 The worker 7. 11.2 The frame 7.11.3 The form 7. 12 OmniThreadLibrary and Databases 7.121 Database model 7.12.2 Frame and worker 7. 12.2.1 Connecting to the Database 7. 12.2.2 Retrieving the data 7. 12.3 Main Program 7. 13 OmniThreadLibrary and COm/ole 7.14 USing Message Queue with a TThread Worker 7. 14.1 Sending Data from Multiple producers to a Single Worker 7. 14.1.initialization and Cleanup 7. 14.1.2 Sending data to the worker 7. 14.1.3 Receiving the Data 7. 14.2 Sending Data from a Worker to a Form 7. 14.2.1 Initialization and Cleanup 7. 14.2.2 Sending Data to the Form 7. 14.2.3 Receiving the Data 8. Glossary appendix Demo applications Examples Installing with Get etIt Installing with Delphi Inus Hooking Into OmniThreadLibrary Exception notifications Thread notifications Pool notifications For each internals Source provider Data Manager LoCal Queue Output orderin Notes Credits The author would like to thank gorazd jernejc (also known as gn) for his contribution to the OmniThreadlibrary project Gorazd, oTL would not be the same without you! Parts of code were provided by anton Alisov and Lee Nover. Thanks! Following programmers(in alphabetical order) helped with reporting and fixing bugs ajasja, andi, Anton Aliso, dottor_jeckill, geskill, Hallvard Vassbotn, Jamie, M.J. Brandt, Mason Wheeler, Mayjest, meishier, morliC, Passella, Qmodem, Unspoken, Zarko. Great thanks go to Pierre le Riche who wrote beautiful FastMM memory manager and allowed me to include it in the distribution Coverpage(cDaveGingrichhttp://www.flickrcom/photos/ndanger/2744507570/ Introduction This is a book about OmniThread Library, a multithreading library for embarcadero Delphi rapid development environment The book assumes that the reader has some understanding about the multithreading programming. If you are new to multithreading, an excellent introduction is Multithreading- The Delphi way by Martin Harvey. That book is oldie, but goldie A more up-to-date overview of Delphi multithreading capabilities is published in the Delphi Xe2 Foundations, Part 3 by Chris rolliston, which is available on Amazon Formatting Conventions This books covers the latest official OmniThread Library release When a part of the book covers some other version, a version tag in superscript will indicate relevant version or versions. Version numbers(f i. 2. 1) are used for older releases and SVN revision numbers(f i. r1184) are used for functionality that was added after the last official release A single version or revision number(f i. [r1184] indicates that the topic in question was introduced in this version and that it is still supported in the current release A range of two versions(fi. 1.0-1 indicates that the topic was introduced in the first version (1.o in this example)and that it was supported up to the second version (1.1) After that, support for this topic was removed or it was changed so much that an additional section was added to describe the new functionality Learn more A good way to learn more about the OmniThreadlibrary is to go through the demos. They are included in the standard omni threadlibrary distribution so you should have them on the disk already if you have installed OmniThreadlibrary each demo deals with very limited subset of OmniThreadLibrary functionality so they are farily easy to understand From time to time I'm presenting OmniThreadLibrary in live webinars. Recordings are available on gumroad I am also frequently posting about the OmniThreadLibrary on my blog. All the relevant articles are tagged with the OmniThreadLibrary tag Support is also available on StackOverflow(make sure to tag the question with omnithreadlibrary)and on the Google+ OmniThreadLibrary community You can also stay in touch by following my Twitter account Advertisement
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: omnithreadlibrary.pdf
 输入关键字,在本站1000多万海量源码库中尽情搜索: