Ubuntu уже установлен параллельно с Windows, как мне полностью заменить Windows? [дубликат]

Возможный дубликат:
Как удалить Windows после установки Ubuntu?

Я уже установил Ubuntu параллельно с Windows 7 на моем ноутбуке. Теперь я хочу полностью заменить Windows 7. Я уже пытался загрузиться с компакт-диска, который я сделал с Ubuntu 12.10, однако компьютер, кажется, переходит прямо к экрану GNU GRUB (экран, который позволяет мне загружаться в Windows или Ubuntu). Любая помощь приветствуется.

1
задан 13 April 2017 в 15:24

14 ответов

Начиная с JDK 1.5 там очень полезные методы в java.lang.management пакет, чтобы найти и осмотреть мертвые блокировки, который происходит. Посмотрите findMonitorDeadlockedThreads() и findDeadlockedThreads() метод ThreadMXBean класс.

А возможный способ использовать это должно иметь отдельный сторожевой поток (или периодическая задача), который делает это.

Пример кода:

  ThreadMXBean tmx = ManagementFactory.getThreadMXBean();
  long[] ids = tmx.findDeadlockedThreads();
  if (ids != null) {
     ThreadInfo[] infos = tmx.getThreadInfo(ids, true, true);
     System.out.println("The following threads are deadlocked:");
     for (ThreadInfo ti : infos) {
        System.out.println(ti);
     }
  }
79
ответ дан 29 August 2015 в 18:34

JConsole может обнаружить мертвые блокировки в запущенном приложении.

18
ответ дан 29 August 2015 в 18:34

В общем Java не предлагает обнаружение мертвой блокировки. Синхронизируемое ключевое слово и созданный в мониторах делает несколько более трудным рассуждать о мертвой блокировке, чем на языках с явной блокировкой.

я предложил бы мигрировать на использование java.util.concurrent. Блокировка блокирует и т.п. для создания схем блокировки легче рассуждать о. На самом деле Вы могли легко сделать свою собственную реализацию интерфейса блокировки с обнаружением мертвой блокировки. Алгоритм должен в основном пересечь граф зависимостей блокировки и искать цикл.

6
ответ дан 29 August 2015 в 18:34

Мертвых блокировок можно избежать, если Вы следуете простому правилу: имейте все требование потоков и выпустите их блокировки в том же порядке. Таким образом Вы никогда не входите в ситуацию, где мертвая блокировка может произойти.

Даже обеденная проблема философов может рассматриваться как нарушение этого правила, поскольку это использует относительное понятие левой и правой ложки, которое приводит к различным потокам с помощью различных заказов выделения ложек. Если бы ложки были пронумерованы исключительно и философы, все пытались получить самую низкую пронумерованную ложку сначала, мертвая блокировка была бы невозможна.

, По-моему, предотвращение лучше, чем средство исправления.

Это - одна из этих двух инструкций, за которыми мне нравится следовать, чтобы гарантировать, чтобы потоки работали правильно. Другой гарантирует, что каждый поток только ответственен за свое собственное выполнение, как это - единственное, полностью осведомленное о том, что это делает в любом моменте времени.

Так, чтобы средства никакой Thread.stop вызовы, используйте глобальный флаг (или очередь сообщений или что-то как этот), чтобы сказать другому потоку желание принятых мер. Затем позвольте тому потоку сделать фактическую работу.

4
ответ дан 29 August 2015 в 18:34

Доктор Heinz Kabutz из JavaSpecialists записал интересное и информативное проблема новостной рассылки о мертвых блокировках Java и описывает что-то позвонившее ThreadMXBean в другой выпуск новостной рассылки. Между теми необходимо получить хорошую идею проблем и некоторых указателей на выполнение собственного инструментария.

3
ответ дан 29 August 2015 в 18:34

Если Вы находитесь на Java 5, можно назвать метод findMonitorDeadlockedThreads() на ThreadMXBean, который можно пройти через вызов java.lang.management.ManagementFactory.getThreadMXBean(). Это найдет мертвые блокировки вызванными объектными мониторами только. На Java 6 существует findDeadlockedThreads(), который также найдет мертвые блокировки вызванными "ownable синхронизаторами (например ReentrandLock и ReentrantReadWriteLock).

знать, что, вероятно, будет дорого назвать эти методы, таким образом, они должны будут использоваться для поиска и устранения неисправностей целей только.

4
ответ дан 29 August 2015 в 18:34

Извините, но Windows с закрытым исходным кодом, какую бы ссылку я ни нашел, но вам нужен установочный диск для ремонта. к-вручную ремонт-окна-7-загрузчик-проблемы /

0
ответ дан 13 April 2017 в 15:24

Самым простым путем является с gparted из Ubuntu Живой CD. Этот вопрос связывается с ответом:

Действительно ли возможно использовать Ubuntu Живой CD и выполнить GParted для разделения моего жесткого диска (включая раздел, который обычно монтируется в данной системе)?

В основном шаги:

  1. Создайте резервную копию всего
  2. Начальная загрузка с Ubuntu живой CD
  3. Выполненный 'gparted' для редактирования разделов.
  4. Удалите раздел Windows
  5. Измените размер своего раздела Linux на новое свободное пространство

Существуют некоторые протесты здесь, перечислены на этой странице:

https://help.ubuntu.com/community/HowtoPartition/OperatingSystemsAndPartitions

Главным образом это включает проверку, что Ваш загрузчик (GRUB) может все еще найти Вашу операционную систему, но современная личинка должна хорошо работать и найти Ваш раздел Linux очень хорошо.

0
ответ дан 13 April 2017 в 15:24

Если у вас Ubuntu и Windows уже установлены в отдельных разделах (то есть Ubuntu не был установлен с использованием Wubi ), я думаю, что это просто вопрос загрузки в Ubuntu и оттуда (1) переформатировать Разделы Windows, использующие выбранную вами файловую систему (например, ext4) и (2), запускают sudo update-grub для автоматического удаления Windows из списка GRUB.

В твоем вопросе я не понимаю, почему ты пытаешься загрузиться с CD. Если Ubuntu уже установлена, то в этом не должно быть необходимости. Может я что-то упустил? В любом случае, если последовательность загрузки идет прямо к GRUB, это может быть следующим:

  • загрузка с CD не включена в настройках BIOS или после HDD в последовательности
  • CD поврежден
0
ответ дан 13 April 2017 в 15:24

Java 5 представил ThreadMXBean - интерфейс, который обеспечивает различные методы мониторинга для потоков.... Различие - то, что findDeadlockedThreads может также обнаружить мертвые блокировки, вызванные блокировками владельца (java.util.concurrent), в то время как findMonitorDeadlockedThreads может только обнаружить блокировки монитора (т.е. синхронизировал блоки)

, Или можно обнаружить его программно, отослать этот https://dzone.com/articles/how-detect-java-deadlocks

0
ответ дан 31 October 2019 в 13:37

Java может обнаружить мертвые блокировки (хотя не во времени выполнения, он может все еще диагностировать и сообщить об этом).

, Например, при использовании немного измененной версии рева кода 'Saurabh M. Chande' (изменил его на Java и добавил некоторую синхронизацию для гарантии блокировки на каждом выполнении). После того как Вы выполняете его, и это заходит в тупик, если Вы вводите:

kill -3 PID   # where 'PID' is the Linux process ID

Это генерирует дамп стека, который будет включать следующую информацию:

Found one Java-level deadlock:
=============================
"Thread-0":
     waiting to lock monitor 0x08081670 (object 0x7f61ddb8, a Deadlock$A),
     which is held by "main"
"main":
      waiting to lock monitor 0x080809f0 (object 0x7f61f3b0, a Deadlock$B),
      which is held by "Thread-0"
3
ответ дан 31 October 2019 в 13:37

Обратите внимание, что существует тип мертвой блокировки с помощью параллельного пакета, который очень трудно отладить. Это - то, где у Вас есть ReentrantReadWriteLock, и один поток захватывает блокировку чтения, и затем (скажите), что попытки ввести монитор, сохраненный некоторым другим потоком, который также ожидает для захвата блокировки записи. Что делает, особенно трудно для отладки случается так, что нет никакой записи того, кто ввел блокировку чтения. Это - просто количество. Поток, возможно, даже выдал исключение и умер, оставив количество чтения ненулевым.

Вот демонстрационная мертвая блокировка, которую упомянул findDeadlockedThreads метод, ранее не доберется:

import java.util.concurrent.locks.*;
import java.lang.management.*;

public class LockTest {

    static ReentrantReadWriteLock lock = new ReentrantReadWriteLock();

    public static void main(String[] args) throws Exception {
        Reader reader = new Reader();
        Writer writer = new Writer();
        sleep(10);
        System.out.println("finding deadlocked threads");
        ThreadMXBean tmx = ManagementFactory.getThreadMXBean();
        long[] ids = tmx.findDeadlockedThreads();
        if (ids != null) {
            ThreadInfo[] infos = tmx.getThreadInfo(ids, true, true);
            System.out.println("the following threads are deadlocked:");
            for (ThreadInfo ti : infos) {
                System.out.println(ti);
            }
        }
        System.out.println("finished finding deadlocked threads");
    }

    static void sleep(int seconds) {
        try {
            Thread.currentThread().sleep(seconds*1000);
        } catch (InterruptedException e) {}
    }

    static class Reader implements Runnable {
        Reader() {
            new Thread(this).start();
        }
        public void run() {
            sleep(2);
            System.out.println("reader thread getting lock");
            lock.readLock().lock();
            System.out.println("reader thread got lock");
            synchronized (lock) {
                System.out.println("reader thread inside monitor!");
                lock.readLock().unlock();
            }
        }
    }

    static class Writer implements Runnable {
        Writer() {
            new Thread(this).start();
        }
        public void run() {
            synchronized (lock) {
                sleep(4);
                System.out.println("writer thread getting lock");
                lock.writeLock().lock();
                System.out.println("writer thread got lock!");
            }
        }
    }
}
8
ответ дан 31 October 2019 в 13:37

После так долго, я могу записать самый простой пример Мертвой блокировки. Комментарии приветствуются.

Class A
{
  synchronized void methodA(B b)
  {
    b.last();
  }

  synchronized void last()
  {
    SOP(“ Inside A.last()”);
  }
}

Class B
{
  synchronized void methodB(A a)
  {
    a.last();
  }

  synchronized void last()
  {
    SOP(“ Inside B.last()”);
  }
}


Class Deadlock implements Runnable 
{
  A a = new A(); 
  B b = new B();

  // Constructor
  Deadlock()
  {
    Thread t = new Thread(); 
    t.start();
    a.methodA(b);
  }

  public void run()
  {
    b.methodB(a);
  }

  public static void main(String args[] )
  {
    new Deadlock();
  }
}
-1
ответ дан 31 October 2019 в 13:37

необходимо изменить код немного в Классе

   Deadlock() {
    Therad t = new Thread(this); // modified
    t.start();
    System.out.println(); //any instruction to delay
    a.methodA(b);
}

Мертвой блокировки, Также вышеупомянутый код будет не всегда вызывать тупик, только несколько раз это может произойти.

-4
ответ дан 31 October 2019 в 13:37

Другие вопросы по тегам:

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