This site contains older material on Eiffel. For the main Eiffel page, see

EiffelThreads: Multi-threading for O-O development

Eiffel Power (TM) from ISE

The power of multithreading

Multi-threaded applications provide a flexible, exciting way of utilizing the power of modern computer systems.

With threads, you can start keep several tasks running at the same time, without incurring the overhead of inter-process switching.

ISE Eiffel's EiffelThreads library supports a powerful multithreaded model, simple and easy to use. EiffelThreads reconciles multithreading with the concepts of object technology and efficient memory management.


One of the principal innovations of EiffelThreads is its combination of multithreading with garbage collection. With approaches using a single garbage collector, all threads must stop whenever one thread runs out of memory and needs to call the GC. This is not acceptable; a thread could, for example, have called out some external routine (from the operating system, or some C library) which takes a long time to complete, blocking all other threads in the meantime.

ISE Eiffel avoids these problems by allocating one GC per thread and providing simple and effective solutions to remove any contention or conflicts between threads. The result is a flexible solution which maximizes application speed.

For more information