Microsoft Patents Multithreaded Opening and Saving
Microsoft has been granted a patent that provides the rights to multithreaded opening and saving of documents as well as all other files that can be edited.
According to the patent, multithreaded opening and saving is beneficial in scenarios where files become increasingly complex and large and would take too long to be processed in a traditional single-threaded way, especially when the selected document requires the launch of an application that is not loaded yet.
Microsoft's idea describes a three process pipeline, in which the first pipeline is leverage to load a document into an application and the second to execute the application process thread, including "tasks associated with operating on the documents". A third pipeline is employed to execute the load process thread. The structure is designed as a synchronization primitive for regulating access to a "circular queue" as the technology is configured to "pass tokens from the first pipeline as input to the tasks in the second pipeline," and the tasks in the second pipeline "are configured to pass tokens as input to the tasks in the third pipeline."
Microsoft already owns similar patents, including the right to multi-threaded processing of spreadsheets.
The main issue arises when you open gigantic MS Office files, or if they were created with a different version of Office (thus requiring additional time to convert them).
They make OSes, and multithreading isn't about multicore. This mechanism is actually quite common. Applications, Windows, iOS, Android, Linux, you name it, usually have a message loop. In that loop is the draw command. If that command isn't run, your application looks frozen.
So, offloading the task to a thread on a single-core system would keep your app from looking frozen
Patent any little thing possible hoping you do get it. The cost to corporations for a patent is small, but if its used in something the licencing / royalties can be massive. Horrible game of blind darts with a broken system that in theory is to protect innovation and spur economic growth not stifle it.
This shows saving a document client side and server side both of which could benefit from multithreading
The client Windows OS is just a bad file manager as it is, too many files and every file operation becomes an exercise in patience as explorer goes unresponsive as it calls for file scans, generates thumbnails, and prefetches, all because you clicked on a folder's icon to drag it to the recycle bin. If, while dragging, it passes over a shared volume, it's break time, it'll be a while before Explorer unlocks the folder.
Sure, I can disable a lot of the ridiculousness, but why should that even be necessary? When the person is waiting on the computer to have time to respond to commands after doing the things Windows has decided are more important than taking directions from the meat puppet, who is the user and who is the tool?
This isn't specific to muti-core processors, or even the processor area entirely. You can parallel-thread an application on a single core or single-CPU system and still benefit from increased performance or decreased dwell/latency for user input. It's not a hardware-level execution, it's an OS-level application. Without an OS or file-handling mechanism, the CPU is generally worthless, so there's no reason why this "invention" should be dependent on a CPU.
It's an interesting situation. "Algorithms" are not patentable (I guess because they inevitably fall back to basic mathematical concepts--but developing a programming method can require a significant amount of investment and work--no reason why it shouldn't be patentable when other physical things that require the same amount of investment and work are. Then again, I disagree with the entire patent system in general, so if it were up to me, nothing would be patentable in the ways that they currently are.
At least it's better than precaching an application with a service (which take time on startup and always take your memory).
The second paragraph of the article is critical:
So, the patent is not about making your software use multiple threads to load/save a file, but rather about using multiple threads in the operating system when loading a file in software.