Java дээр хуулбар процесс үүсгэх

Чөлөөт нэвтэрхий толь — Википедиагаас
Харайх: Удирдах, Хайлт

Thread ашиглахгүйгээр удаан үйлдэлтэй програм хийхэд програм чинь үйлдэлээ хийгээд завгүй бол наад зах нь өөрийн интэрфейсээ зурж чадахаа болино. NOT RESPONDING гээд харж байсан байх. Ер нь thread үүсэж байна аа гэдэг маань CPU дээр тухайн thread нь өөрийн гэсэн хэсэгтэй болно гэсэн үг. Бусад өөр thread – ийн халдашгүй дархан эрхэнд халдаж болохгүй. Тийм болхоор алдаа зааж байгаа юм. Гэхдээ бүүр хандаж болохгүй гэсэн үг юм. Процесүүд нь CPU дээр очертой байдаг ба зарим нэг нь очер дайрах эрхтэй байдаг. Энэ нь тухайн процесуудынхаа зэрэглэлээс хамааран хийгдэнэ. Мэдээж өндөр зэрэглэлтэй нь дайрна. synchronized – ийн хувьд бол олон thread дундаа нэг өгөгдөл ашиглахад хэрэглэдэг арга. Үүнээс улбаалаад Java програмын Thread гэдэг нь програмын биелэлтийн суурь загвар бөгөөд бүтээл ба менежментийн thread-ээр Java хэл ба API нь баялаг онцлогтой байдаг. Бүх Java програмууд нь ядаж нэг удирдлагын thread агуулдаг ба зөвхөн main() method -оос бүтсэн жирийн Java програм хүртэл нэг thread агуулдаг. Java програмд thread-ийг үүсгэх 2 арга байдаг.

Thread үүсгэх үндсэн 2 арга байдаг.

1.Thread class олгох

2.Runnable интерфайс хэрэгжүүлэх

Thread class[засварлах | edit source]

Thread классыг өргөжүүлэх 2 арга байдаг. Аль ч тохиолдолд, thread-ийн гүйцэтгэх ажлыг run() арга дотор тодорхойлно. Thread бүр нь java.lang.Thread class –д удирдах ба үүсгүүлдэг.


Thread class түгээмэл хэрэглэгддэг зохион байгуулагч[засварлах | edit source]

Thread()

Thread(String name)

Thread(Runnable r)

Thread(Runnable r,String name)

Thread class-ийн түгээмэл хэрэглэгддэг аргууд[засварлах | edit source]

Арга Тайлбар
run() Үүнийг Runnable объект дахин тодорхойлно. Thread –ийн гүйцэтгэх кодийг агуулна.
start() Thread эхлэхдээ run() аргаа дуудна.
sleep() Заасан хугацаанд түр хүлээж бусад Thread-уудад ажиллах бололцоог олгоно.
interrupt() Идэвхтэй Thread-ийг тасалдуулна.
getName() Идэвхтэй байгаа Thread-ийн нэрийг буцаана.
getPirority() Priority-ийг буцаана.
isAlive() Тухайн Thread байгаа эсэхийг шалгана. Булийн утга буцаана.
setName() Thread-д нэр өгнө.
get() Thread-д Pirority өгнө.
currentTread() Идэвхтэй Thread-ийг буцаана.


Runnable интерфейс[засварлах | edit source]

Runnable интерфэйс нь зорилготой урсгалаар гүйцэтгэх ямар ч тохиолдолд ангид хэрэгжүүлэх ёстой.Runnable интерфэйс нь нэг л арга нэртэй урсгал ().

public void run(): урсгалаар нь үйлдэл хийдэг.

Thread эхлэх[засварлах | edit source]

start() Thread class арга нь шинээр байгуулагдсан thread-ийг эхэлж ашиглаж байна. Энэ нь дараах чиг үүргүүдийг гүйцэтгэнэ:

Шинэ thread эхэлнэ.

Thread Runnable бүтэц шинэ бүтцийг хөдөлгөдөг.

Thread ажиллуулах боломж авдаг бол, түүний зорилтот урсгал () арга ажиллуулах болно.

Java Thread жишээ[засварлах | edit source]

Thread class[засварлах | edit source]

class Multi extends Thread{

public void run(){

System.out.println("thread is running...");

}

public static void main(String args[]){

Multi t1=new Multi();

t1.start();

}  

}

Runnable interface[засварлах | edit source]

class Multi3 implements Runnable{

public void run(){

System.out.println("thread is running...");

}

public static void main(String args[]){

Multi3 m1=new Multi3();

Thread t1 =new Thread(m1);

t1.start();

}  

}

Эндээс үзэх[засварлах | edit source]

Тэмдэглэл[засварлах | edit source]

Гадаад холбоос[засварлах | edit source]

  • David R. Butenhof: Programming with POSIX Threads, Addison-Wesley, ISBN 0-201-63392-2
  • Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell: Pthreads Programming, O'Reilly & Associates, ISBN 1-56592-115-1
  • Charles J. Northrup: Programming with UNIX Threads, John Wiley & Sons, ISBN 0-471-13751-0
  • Mark Walmsley: Multi-Threaded Programming in C++, Springer, ISBN 1-85233-146-1
  • Paul Hyde: Java Thread Programming, Sams, ISBN 0-672-31585-8
  • Bill Lewis: Threads Primer: A Guide to Multithreaded Programming, Prentice Hall, ISBN 0-13-443698-9
  • Steve Kleiman, Devang Shah, Bart Smaalders: Programming With Threads, SunSoft Press, ISBN 0-13-172389-8
  • Pat Villani: Advanced WIN32 Programming: Files, Threads, and Process Synchronization, Harpercollins Publishers, ISBN 0-87930-563-0
  • Jim Beveridge, Robert Wiener: Multithreading Applications in Win32, Addison-Wesley, ISBN 0-201-44234-5
  • Thuan Q. Pham, Pankaj K. Garg: Multithreaded Programming with Windows NT, Prentice Hall, ISBN 0-13-120643-5
  • Len Dorfman, Marc J. Neuberger: Effective Multithreading in OS/2, McGraw-Hill Osborne Media, ISBN 0-07-017841-0
  • Alan Burns, Andy Wellings: Concurrency in ADA, Cambridge University Press, ISBN 0-521-62911-X
  • Uresh Vahalia: Unix Internals: the New Frontiers, Prentice Hall, ISBN 0-13-101908-2
  • Alan L. Dennis: .Net Multithreading , Manning Publications Company, ISBN 1-930110-54-5
  • Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: C# Threading Handbook, Peer Information Inc, ISBN 1-86100-829-5
  • Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: Visual Basic .Net Threading Handbook, Wrox Press Inc, ISBN 1-86100-713-2

Холбоотой мэдээлэлүүд[засварлах | edit source]

Загвар:Wikiversity

Загвар:Parallel computing Загвар:Operating system