Можно ли настроить модификатор Hyper -на Wayland?

Линус Торвальдс заявил в сообщении списка рассылки ядра в 1996 году, что «и потоки, и процессы рассматриваются как« контекст выполнения »», который является «просто конгломератом всех состояний этого CoE.... включает такие вещи, как состояние процессора, состояние MMU, разрешения и различные состояния связи (открытые файлы, обработчики сигналов и т. д. )».

// simple program to create threads that simply sleep
// compile in debian jessie with apt-get install build-essential
// and then g++ -O4 -Wall -std=c++0x -pthread threads2.cpp -o threads2
#include <string>
#include <iostream>
#include <thread>
#include <chrono>

// how many seconds will the threads sleep for?
#define SLEEPTIME 100
// how many threads should I start?
#define NUM_THREADS 25

using namespace std;

// The function we want to execute on the new thread.
void threadSleeper(int threadid){
    // output what number thread we've created
    cout << "task: " << threadid << "\n";
    // take a nap and sleep for a while
    std::this_thread::sleep_for(std::chrono::seconds(SLEEPTIME));
}

void main(){
    // create an array of thread handles
    thread threadArr[NUM_THREADS];
    for(int i=0;i<NUM_THREADS;i++){
        // spawn the threads
        threadArr[i]=thread(threadSleeper, i);
    }
    for(int i=0;i<NUM_THREADS;i++){
        // wait for the threads to finish
        threadArr[i].join();
    }
    // program done
    cout << "Done\n";
    return;
}

Как вы видите, эта программа создаст одновременно 25 потоков, каждый из которых приостановится на 100 секунд, а затем снова присоединится к основной программе. После того, как все 25 потоков присоединятся к программе, программа завершится и завершится.

С помощью topвы сможете увидеть 25 экземпляров программы threads2. Но чертовски скучно. Вывод ps auwxеще менее интересен... НО ps -eLfстановится довольно захватывающим.

UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
debian     689   687   689  0    1 14:52 ?        00:00:00 sshd: debian@pts/0  
debian     690   689   690  0    1 14:52 pts/0    00:00:00 -bash
debian    6217   690  6217  0    1 15:04 pts/0    00:00:00 screen
debian    6218  6217  6218  0    1 15:04 ?        00:00:00 SCREEN
debian    6219  6218  6219  0    1 15:04 pts/1    00:00:00 /bin/bash
debian    6226  6218  6226  0    1 15:04 pts/2    00:00:00 /bin/bash
debian    6232  6219  6232  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6233  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6234  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6235  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6236  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6237  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6238  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6239  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6240  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6241  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6242  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6243  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6244  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6245  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6246  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6247  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6248  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6249  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6250  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6251  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6252  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6253  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6254  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6255  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6256  0   26 15:04 pts/1    00:00:00./threads2
debian    6232  6219  6257  0   26 15:04 pts/1    00:00:00./threads2
debian    6260  6226  6260  0    1 15:04 pts/2    00:00:00 ps -eLf

Здесь вы можете увидеть все 26 ЦП, созданных программой thread2. Все они имеют один и тот же идентификатор процесса (PID )и идентификатор родительского процесса (PPID ), но у каждого из них свой идентификатор LWP (, облегченный процесс )и количество LWP (. ] NLWP )указывает, что существует 26 CoE — основная программа и 25 порожденных ею потоков.

2
15.10.2020, 02:00
1 ответ

Hyper — это сочетание клавиш CTRL, ALT и SUPER

По крайней мере, так это делает R _ALT -по -Hyper-плагин для HID evdev Инструменты перехвата .

Слой Evdev ниже, чем X11 и Wayland, поэтому Hyperстановится доступным в любой системе пользовательского интерфейса, которую вы используете.

0
18.03.2021, 22:57

Теги

Похожие вопросы