Fire-and-Forget: The unification of single-threaded, multi-threaded and asynchronous programming technology
“Fire-and-Forget” is a guidance bullet with independent guidance capability. It does not need external support, it will automatically track and strike the target, and do not need to control after launching. The utility model has the advantages of improving the use efficiency between the missile and the launcher, and reducing the missile’s dependence on other systems to provide its own updated information, so that the launcher can attack the largest number of targets in the shortest time and improve the survival of the launcher. The development direction of guidance technology in the future is precisely the “Fire-and-Forget” precision guidance technology.
For the same reason, I think the development direction of concurrent and parallel programming technology is also “Fire-and-Forget”, so asynchronous is unnecessary, async / await is a backward and inevitably eliminated model. Change from focusing on “code and function development” to “data control, data flow management, data lifecycle management, data standardization system, process improvement (process reengineering), thread collaborative optimization, etc.”
The abolition of async / await is essentially “operations research”. When waiting, this thread should be over. For example, in a factory, it will not happen that one workshop squats at the door of another workshop to wait for raw materials. Each workshop only interacts with the warehouse. After the main thread (also the workshop) sends out order data, The production plan is generated by the warehouse, and data (messages) are sent to the relevant workshops for production until the task is completed. There is no waiting in the entire process, but the production plan is generated according to the order, with the warehouse as the center, and each workshop independently produces in parallel.
Product: Standardized data
Warehouse: data management, sending & receiving
- Notify thread production data by order (production plan) or inventory level
- Send the data to the thread, if the thread does not exist, create a thread.
- Fire-and-Forget: Forget after sending the data.
- Except for input / output data. It is isolated from the outside world, Forget after the data is sent to the warehouse.
- Passive production: Lean Production, JIT (Just In Time) Production, production by order (production plan), pursuit of zero inventory and quick response.
- Active lazy production: When the data of the warehouse (cache) is lower than the minimum inventory level, the thread starts to produce data to fill the warehouse until the optimal inventory level is reached.
Warehouse: data management, sending & receiving, like: Enterprise Warehouse（DB） + MES (Manufacturing Execution System) = Database + DBMS.
- MES can be used as a workshop, but it is integrated with the warehouse as a DBMS. The combination of the DBMS and the database is more reasonable and the performance is higher.